class Temp {
private:
int variable;
public:
Temp(void) {
variable = 0;
}
Temp(int newVariable) {
variable = newVariable;
}
void changeVariable(int newVariable) {
variable = newVariable;
}
};
头文件代码:
class Temp {
private:
int variable;
public:
Temp(void);
Temp(int newVariable);
void changeVariable();
};
CPP文件里代码:
Temp(void) {
variable = 0;
}
Temp(int newVariable) {
variable = newVariable;
}
void changeVariable(int newVariable) {
variable = newVariable;
}
但是会报错, 例如variable未声明...请问该怎么修改?
7 个解决方案
#1
void changeVariable();
void changeVariable(int newVariable) {
variable = newVariable;
}
申明与实现不一致
void changeVariable(int newVariable) {
variable = newVariable;
}
申明与实现不一致
#2
如果要放入库中,我的习惯一般是只写头文件,所有的实现,都放头文件的class中。
尤其是作为代码库的时候,同时存在.h和.cpp,引用起来不太方便。
尤其是作为代码库的时候,同时存在.h和.cpp,引用起来不太方便。
#3
.h和.cpp的分离写法,一般是用于二进制库,而非源代码库。这种情况下,头文件是给别人调用的,但同时会提供编译好的.lib文件。
在.cpp的实现中,你不仅要指明方法的名称和参数,还要指明是哪个类的方法,如:
void Temp::changeVariable(int newVariable) {
variable = newVariable;
}
在.cpp的实现中,你不仅要指明方法的名称和参数,还要指明是哪个类的方法,如:
void Temp::changeVariable(int newVariable) {
variable = newVariable;
}
#4
头文件中void changeVariable() 缺少行参应该改为void changeVariable(int)
#5
报错问题参考三楼
#6
CPP文件这样改:
Temp::Temp(void) {
variable = 0;
}
Temp::Temp(int newVariable) {
variable = newVariable;
}
void Temp::changeVariable(int newVariable) {
variable = newVariable;
}
#7
#1
void changeVariable();
void changeVariable(int newVariable) {
variable = newVariable;
}
申明与实现不一致
void changeVariable(int newVariable) {
variable = newVariable;
}
申明与实现不一致
#2
如果要放入库中,我的习惯一般是只写头文件,所有的实现,都放头文件的class中。
尤其是作为代码库的时候,同时存在.h和.cpp,引用起来不太方便。
尤其是作为代码库的时候,同时存在.h和.cpp,引用起来不太方便。
#3
.h和.cpp的分离写法,一般是用于二进制库,而非源代码库。这种情况下,头文件是给别人调用的,但同时会提供编译好的.lib文件。
在.cpp的实现中,你不仅要指明方法的名称和参数,还要指明是哪个类的方法,如:
void Temp::changeVariable(int newVariable) {
variable = newVariable;
}
在.cpp的实现中,你不仅要指明方法的名称和参数,还要指明是哪个类的方法,如:
void Temp::changeVariable(int newVariable) {
variable = newVariable;
}
#4
头文件中void changeVariable() 缺少行参应该改为void changeVariable(int)
#5
报错问题参考三楼
#6
CPP文件这样改:
Temp::Temp(void) {
variable = 0;
}
Temp::Temp(int newVariable) {
variable = newVariable;
}
void Temp::changeVariable(int newVariable) {
variable = newVariable;
}