gpt4 book ai didi

c++ - 如何在不同的类中初始化对象?

转载 作者:搜寻专家 更新时间:2023-10-31 01:40:38 25 4
gpt4 key购买 nike

我正在学习 C++,但我的基础知识有问题。如何在不同类中初始化对象?

例如我有代码:

class A {

private:
static int num;
static string val;

public:
A(int n, string w) {
num = n;
val = w;
}
};

我想在类 B 中创建对象 A,所以我这样尝试:

class B {
private:
A objA;
public:
B(int numA, string valA){
objA = new A(numA, valA);
}
};

不同的方式(相同的构造函数):

 public:
B(A obA){
objA = obA;
}

 public:
B(int numA, string valA){
objA = A(numA, valA);
}

总是出现错误:类“A”不存在默认构造函数。我读过默认构造函数是不带任何参数的构造函数,但我给了它们,所以为什么要搜索默认值?

最佳答案

如果你想学习 C++...忘记 java。 C++ 变量是值,而不是伪装成引用的指针。

objA = new something 是可憎的,因为 objAA 而不是 A*

你需要的只是用适当的参数显式构造objA

class B {
private:
A objA;
public:
B(int numA, string valA)
:objA(numA, valA)
{
}
}
};

有关更多引用,请参阅 http://en.cppreference.com/w/cpp/language/initializer_list

关于c++ - 如何在不同的类中初始化对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29549100/

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