我有这个在家具。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错误家具:‘C2628’后跟'void‘是非法的(您是否忘记了';'?)c:\final\facultate\poo\laborator 1\furniture.cpp 3 1 POO_lab
错误2错误字符串:‘家具家具::setname(std::C2556)’:重载函数与'void家具::setname(std::string)‘c:\final\facultate\poo\laborator 1\furniture.cpp 3 1 POO_lab的返回类型不同
Error 3 error C2371:‘家具::集合名称’:重新定义;不同的基本类型c:\final\facultate\poo\laborator 1\furniture.cpp 3 1 POO_lab
Error 5 error C2264:‘家具::集名’:函数定义或声明中出错;函数未调用c:\final\facultate\poo\laborator 1\furniture.cpp 19 1 POO_lab
我做错了什么?
发布于 2012-03-19 06:08:44
头文件中类定义的末尾缺少;。
// ...snipped...
protected:
static int NumberOfItems;
int Id;
}; // <-- here发布于 2012-03-19 06:09:03
您在类定义的末尾忘记了一个分号。
// ...
protected:
static int NumberOfItems;
int Id;
}; // <--我讨厌C++这一点:)
发布于 2012-03-19 06:11:32
两件事;
声明有构造函数和析构函数,但这两个函数都没有在.cpp文件中实现。: furniture.h.
;来结束你的类定义,你需要在声明有构造函数和析构函数的末尾加上一个。https://stackoverflow.com/questions/9762757
复制相似问题