我试图实例化一个没有默认构造函数的对象,因此可以从类中的任何方法引用它.我在头文件中声明了它,但编译器说创建它的类的构造函数必须显式初始化成员,我不知道如何做到这一点.
非常感谢您的回答,谢谢您提前!
片段:
MyClass.h
include "MyOtherClass.h"
class myClass {
private:
MyOtherClass myObject;
public:
MyClass();
~MyClass();
void myMethod();
}
Run Code Online (Sandbox Code Playgroud)
MyClass.cpp
include "MyClass.h"
MyClass::MyClass() {
MyOtherClass myObject (60);
myObject.doSomething();
}
MyClass::myMethod() {
myObject.doSomething();
}
Run Code Online (Sandbox Code Playgroud)
MyOtherClass.h
class MyOtherClass {
private:
int aNumber;
public:
MyOtherClass (int someNumber);
~MyOtherClass();
void doSomething();
}
Run Code Online (Sandbox Code Playgroud)
MyOtherClass.cpp
include "MyOtherClass.h"
MyOtherClass::MyOtherClass (int someNumber) {
aNumber = someNumber;
}
void MyOtherClass::doSomething () {
std::cout << aNumber;
}
Run Code Online (Sandbox Code Playgroud) 我正在用C++设计一个项目并且到了我怀疑的地步,而我应该使用继承来获得多态性.
具体地讲,我有一个类JazzQuartet,其具有4个对象:Saxophonist,Pianist,Bassist和Drummer,每一个play()和listen()方法,具有不同的实现.
我想让它们都继承自一个类,Musician所以我可以拥有一个Musician对象数组并调用每个play()人和listen()方法,所以我可以Musician listen()对任何其他人做任何事.但是由于它们的实现完全不同,我只是为了获得多态性而使用这种遗产,我不确定这是否是一个好的设计选择.
对此事有何建议?
谢谢大家!