错误 "function (constructor) already has a body" 对于派生类,即使在包含标头保护之后



我正在尝试基于一个类创建派生类。每当我进行编译时,它都会给我一个错误,说我的构造函数已经有了主体。一些谷歌搜索表明,包括头球后卫可以纠正这种情况,但这似乎也没有帮助。这是的相关代码

ProductionWorker.h

#pragma once
#ifndef _PRODUCTIONWORKER_H_
#define _PRODUCTIONWORKER_H_
#include "Employee.h"
...
public:
ProductionWorker():Employee(){}
ProductionWorker(string n, string i, double s, int shift, int h, double p) :Employee(n, i, s){}
...
#endif

ProductionWorker.cpp

#include "ProductionWorker.h"
ProductionWorker::ProductionWorker() : Employee() {
shift = 0;
hours = 0;
payRate = 0;
}
ProductionWorker::ProductionWorker(string n, string i, double s, int shft, int h, double p) :Employee(n, i, s)
{
shift = shft;
hours = h;
payRate = p;
}

最后的答案是我犯了两个错误。第一个是包含";{}";而不是"&";。我最初使用的是内联定义,而不是声明。我还在声明中包含了基类,就好像我在做定义一样。更正后的代码看起来像这个

ProductionWorker.h

public:
ProductionWorker();
ProductionWorker(string n, string i, double s, int shift, int h, double p);

我可以看到,像这样简单的问题在Stack Overflow上并不受欢迎。有人会给我指一个论坛,欢迎更多的";初学者";问题?

最新更新