我正在尝试实例化一个没有默认构造函数的对象,以便可以从类内的任何方法中引用它。我在头文件中声明了它,但是编译器说创建它的类的构造函数必须显式初始化该成员,而我不知道该怎么做。
真的很感谢您的回答,在此先谢谢您!
片段:
MyClass.h
include "MyOtherClass.h"
class myClass {
private:
MyOtherClass myObject;
public:
MyClass();
~MyClass();
void myMethod();
}
MyClass.cpp
include "MyClass.h"
MyClass::MyClass() {
MyOtherClass myObject (60);
myObject.doSomething();
}
MyClass::myMethod() {
myObject.doSomething();
}
MyOtherClass.h
class MyOtherClass {
private:
int aNumber;
public:
MyOtherClass (int someNumber);
~MyOtherClass();
void doSomething();
}
MyOtherClass.cpp
include "MyOtherClass.h"
MyOtherClass::MyOtherClass (int someNumber) {
aNumber = someNumber;
}
void MyOtherClass::doSomething () {
std::cout << aNumber;
}
你快到了。在C ++中创建对象时,默认情况下,它将在其所有对象上运行默认构造函数。您可以通过以下方式告诉语言要使用的构造函数:
MyClass::MyClass() : myObject(60){
myObject.doSomething();
}
这样,它就不会尝试查找默认的构造函数并调用所需的构造函数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句