刚刚看到this question与C++类和程序中的分段错误问题有关。
我的问题与类定义有关。这是它发布时的样子:
class A {
int x;
int y;
public:
getSum1() const {
return getx() + y;
}
getSum2() const {
return y + getx();
}
getx() const {
return x;
}
}
到目前为止,关于该问题的答案都未提及方法的返回类型。我希望它们的定义像
int getSum1() const { ....
int getSum2() const { ....
int getx() const { ....
int
是否必须存在? 最佳答案
是的,int
必须存在。原始代码示例无效(因为其他人提到,该代码可能最初是C而不是C++)。首先,类声明需要使用终止分号来进行编译。 g++报告:
foo.cpp:3: note: (perhaps a semicolon is missing after the definition of ‘A’)
添加分号,我们得到:
class A {
int x;
int y;
public:
getSum1() const {
return getx() + y;
}
getSum2() const {
return y + getx();
}
getx() const {
return x;
}
};
仍然失败。 g++将报告以下内容:
foo.cpp:8: error: ISO C++ forbids declaration of ‘getSum1’ with no type
foo.cpp:12: error: ISO C++ forbids declaration of ‘getSum2’ with no type
foo.cpp:16: error: ISO C++ forbids declaration of ‘getx’ with no type
关于c++ - 类中的C++方法定义是否必须指定返回类型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3928076/