我在 furniture.h 中有这个:
#include <iostream>
#include <string>
using namespace std;
class Furniture {
public:
Furniture();
virtual ~Furniture();
void setname(string name);
void setprice(double price);
int getprice();
string getname();
private:
string name;
int price;
protected:
static int NumberOfItems;
int Id;
}
这在 furniture.cpp 中
#include "furniture.h"
void Furniture::setname(string name) {
this->name = name;
}
string Furniture::getname()
{
return this->name;
}
void Furniture::setprice(double price) {
this->price = price;
}
int Furniture::getprice() {
return this->price;
}
int main() {
Furniture *model = new Furniture();
model->setname("FinalDestiny");
model->setprice(149.99);
cout<<"Model name: "<<model->getname()<<" - price = "<<model->getprice();
}
但我遇到了一些错误,例如:
错误 1 error C2628: 'Furniture' 后跟 'void' 是非法的(你忘记了 ';' 吗?)c:\final\facultate\poo\laborator 1\furniture.cpp 3 1 POO_lab
错误 2 error C2556: 'Furniture Furniture::setname(std::string)' :重载函数与 'void Furniture::setname(std::string)' c:\final\facultate\的返回类型仅不同poo\laborator 1\furniture.cpp 3 1 POO_lab
错误 3 error C2371: 'Furniture::setname' : redefinition;不同的基本类型 c:\final\facultate\poo\laborator 1\furniture.cpp 3 1 POO_lab
错误 5 error C2264: 'Furniture::setname' : 函数定义或声明错误;函数未调用 c:\final\facultate\poo\laborator 1\furniture.cpp 19 1 POO_lab
我做错了什么?
最佳答案
您在头文件中类定义的末尾缺少 ;
。
// ...snipped...
protected:
static int NumberOfItems;
int Id;
}; // <-- here
关于c++ - C++ 中的类问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9762757/