C++中的类问题
class issue in C++
我在家具里有这个。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;
}
这个在家具.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:"Furniture"后面跟着"void"是非法的(你忘了一个";"吗?)c:\final\afacultate\poo\laborator 1\Furniture.cpp 3 1 poo_lab
错误2错误C2556:"Furniture Furniture::setname(std::string)":重载函数仅在返回类型上与"void Furniture:setname(std::string)"c:\final\afacultate\poo\laborator 1\Furniture.cpp 3 1 poo_lab "不同
错误3错误C2371:"Furniture::setname":重新定义;不同的基本类型c:\final\afacultate\poo\laborator 1\furniture.cpp 3 1 poo_lab
错误5错误C2264:"Furniture::setname":函数定义或声明中存在错误;函数未调用c:\final\afacultate\poo\laborator 1\furniture.cpp 19 1 poo_lab
我做错了什么?
在头文件中的类定义末尾缺少一个;
。
// ...snipped...
protected:
static int NumberOfItems;
int Id;
}; // <-- here
您忘记了类定义末尾的分号。
// ...
protected:
static int NumberOfItems;
int Id;
}; // <--
我讨厌C++:)
两件事;
-
你不是用
;
来结束你的类定义,你需要在家具的末尾加一个 -
您已经声明有构造函数和析构函数,但它们都没有在.cpp文件中实现。
相关文章:
- 警告处理为错误这里有什么问题
- 最小硬币更换问题(自上而下方法)
- 为"adjacent"变量赋值时出现问题
- 我的神经网络不起作用 [XOR 问题]
- 在Ubuntu 16.04上安装Cilk时出现问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 编译包含字符串的代码时遇到问题
- Project Euler问题4的错误解决方案
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 静态数据成员的问题-修复链接错误会导致编译器错误
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 一个关于在C++中重载布尔运算符的问题
- 首要问题的答案让值班员搞错了
- setlocale的C++土耳其字符串问题
- 如何重构类层次结构以避免菱形问题
- 基于boost的程序的静态链接——zlib问题
- C++格式化输出问题
- 使用mongocxx驱动程序时包含头文件问题