我试图学习隐式this
指针及其用法,但我似乎无法理解为什么我的编译器(MSVC)一直将int
作为函数printcmon()
的类型,而不是cmon
。
void printcmon(const cmon* e);
class cmon
{
public:
int x, y;
cmon(int x, int y) {
this->x = x;
this->y = y;
printcmon(this);
}
int getX() const {
const cmon* e = this;
std::cout << e->x << std::endl;
return 0;
}
};
void printcmon(const cmon* e) {
//stuff
}
错误:
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C2143: syntax error: missing ',' before '*'
error C2664: 'void printcmon(const int)': cannot convert argument 1 from 'cmon *' to 'const int'
message : There is no context in which this conversion is possible
message : see declaration of 'printcmon'
message : while trying to match the argument list '(cmon *)'
1条答案
按热度按时间dgiusagp1#
第一行
void printcmon(const cmon* e);
前没有类cmon添加声明: