班级没有会员"班级"

时间:2015-05-26 08:57:16

标签: c++ constructor

我正在尝试创建一个名为Drone的类,并且有两个文件Drone.hDrone.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做一个构造函数。

4 个答案:

答案 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