gpt4 book ai didi

c++ - 对象声明/初始化为不同类上的私有(private)成员的问题

转载 作者:行者123 更新时间:2023-11-30 02:09:34 32 4
gpt4 key购买 nike

抱歉,如果之前有人问过这个问题,我似乎找不到任何东西。我不确定如何搜索它。

我有这样的东西:

class A {
private:
int x;
int y;
public:
A(int, int);
}

class B {
private:
A a(3, 4); // Doesn't compile because of this line
public:
B();
}

我能想到的解决这个问题的唯一方法是使 a 成为指向 A 的指针,然后执行 a = new A(3, 4);B 的构造函数中。但我不希望 a 成为指针。

解决这个问题的正确方法是什么?

最佳答案

您用“成员初始化列表”标记B 的构造函数。而不是:

B::B() {
...
}

你这样做:

B::B() : a(3, 4) {
...
}

或者如果构造函数在头文件中定义:

class B {
private:
A a;
public:
B() : a(3, 4) {
...
}
};

关于c++ - 对象声明/初始化为不同类上的私有(private)成员的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5293621/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com