#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声明中的语法错误.....但据我所知应该是正确的...所以请帮助....谢谢
答案 0 :(得分:1)
此初始化对数据成员无效:
A objA(1);
你需要
A objA{1};
或
A objA = A(1);
除此之外,这种语句只能在函数内部发生:
objA.Get_x();
答案 1 :(得分:0)
编译器试图将A objA(1)
解释为函数声明,这是错误的。您可以将objA声明为A objA = A(1);
(请注意,这是一个C ++ 11功能,您可能需要在之前启用它。)
另外,我真的不知道objA.Get_x()
应该做什么,但这也是错误的,你不能只访问一个函数之外的成员。可能,你的意思是:
int Get_x() {
return objA.Get_x();
}