我正在尝试创建一个名为Drone
的类,并且有两个文件Drone.h
和Drone.cpp
。
Drone.h
class Drone {
protected:
void foo();
};
Drone.cpp
#include "Drone.h"
Drone::Drone() // <---ERROR
{
}
void Drone::foo()
{
}
我收到错误:
当我将鼠标悬停在无人机上时,在工具提示中&#34; Class&#39;无人机&#39;没有成员无人机。&#34;
。在编译器中,它给出错误:
错误C2600:&#39;无人机::无人机&#39; :无法定义编译器生成的特殊成员函数(必须先在类中声明)
这是为什么?我要做的就是为Drone做一个构造函数。
答案 0 :(得分:7)
您尚未在头文件中明确声明默认构造函数:
class Drone {
protected:
void foo();
public:
Drone(); // <----
};
必须先声明每个成员函数(包括构造函数和运算符),然后才能指定定义。
答案 1 :(得分:2)
您还需要在标题中声明构造函数:
class Drone {
public:
Drone();
protected:
void foo();
};
答案 2 :(得分:1)
所有的成员,包括构造函数,都需要在类定义中声明。您无法在其他地方添加成员。
答案 3 :(得分:0)
创建对象后调用的第一个函数是$datum = (new DateTime($form->getValue('datum')))->format('Y-m-d');
,它具有相同的名称。
$datum = $form->getValue('datum');
在头文件中声明它:
constructor