声明类类型变量时出错


#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();
}

相关内容

  • 没有找到相关文章

最新更新