我正在学习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”不存在默认构造函数。我读过默认构造函数是不带任何参数的构造函数,但是我给了它们,那么为什么要搜索默认构造函数呢?
您可以按照以下方式进行
class B {
private:
A objA;
public:
B(int numA, string valA) : objA( numA, valA ) {}
};
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句