我试图通过查看在Arduino IDE中工作的实际代码来学习C ++。
我遇到了.h文件中未在.cpp文件中定义的类中声明的函数原型(readSensor)。
<div class="medium-6 columns" ng-repeat="stops in objects | orderBy: 'stop_name'">
<div class="card hoverable">
<div class="content">
<span class="title">{{stops.stop_name}}</span><small class="float-right">{{stops.stop_id}}</small>
<!-- this function will search another object store, then retrieve all documents matching the stop_id -->
{{ findOne(stops.stop_id)}}</p>
</div>
</div>
</div>
从未调用函数readSensor()。编译器编译并生成了一个可执行的程序。
可以在.cpp文件中没有定义的.h文件中有原型,编译器除非被调用,否则不关心?这可能不是一个好的做法吗?
答案 0 :(得分:2)
是的,您可以声明原型并且未定义原型。
一个很好的例子是通过声明复制构造函数和赋值私有但不定义它来使类不可复制。这是一种很好的做法。
e.g。
class Foo {
private:
Foo( const Foo& other ); // non construction-copyable - not defined
Foo& operator=( const Foo& ); // non copyable - not defined
};