gpt4 book ai didi

C++ 函数原型(prototype)在 .h 文件的类定义中声明,但函数未在 .cpp 中定义

转载 作者:行者123 更新时间:2023-11-30 03:43:04 26 4
gpt4 key购买 nike

我正在尝试通过查看在 Arduino IDE 中运行的实际代码来学习 C++。

我遇到了一个在 .h 文件中的类中声明的函数原型(prototype) (readSensor),但它没有在 .cpp 文件中定义。

class BME280Class
{
private:
uint16_t readSensor(uint8_t command);

函数 readSensor() 从未被调用过。编译器编译并生成可运行的可执行文件。

是否可以在 .h 文件中拥有未在 .cpp 文件中定义的原型(prototype),并且编译器不关心除非它被调用?这可能不是好的做法,是吗?

最佳答案

是的,您可以声明但未定义原型(prototype)。

一个很好的例子是通过声明复制构造函数和赋值私有(private)但不定义它们来使类不可复制。这是一个很好的做法。

例如

class Foo {
private:
Foo( const Foo& other ); // non construction-copyable - not defined
Foo& operator=( const Foo& ); // non copyable - not defined
};

关于C++ 函数原型(prototype)在 .h 文件的类定义中声明,但函数未在 .cpp 中定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36366471/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com