#include <iostream>
using namespace std;
class A{
private:
int x;
public:
A(){
x=0;
}
A(int i)
{
x=i;
}
int Get_x(){
return x;
}
};
class B{
private:
A objA(1);
public:
objA.Get_x();
};
这是我的代码,它有两个类,即 A 和 B..头等舱运行良好,但在B级..编译器在 objB 的声明中给出了语法错误.....但据我所知,它应该是正确的...所以请帮忙....谢谢
此初始化对数据成员无效:
A objA(1);
你需要
A objA{1};
或
A objA = A(1);
除此之外,这种语句只能发生在函数内部:
objA.Get_x();
编译器试图将A objA(1)
解释为函数声明,这是错误的。您可以将 objA 声明为 A objA = A(1);
(请注意,这是 C++11 功能,您可能需要先启用它)。
另外,我真的不知道objA.Get_x()
应该做什么,但这也是错误的,你不能只访问函数之外的成员。可能,你的意思是:
int Get_x() {
return objA.Get_x();
}