小编Tom*_*des的帖子

显式初始化没有默认构造函数的成员

我试图实例化一个没有默认构造函数的对象,因此可以从类中的任何方法引用它.我在头文件中声明了它,但编译器说创建它的类的构造函数必须显式初始化成员,我不知道如何做到这一点.

非常感谢您的回答,谢谢您提前!

片段:

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++ parameters constructor

23
推荐指数
3
解决办法
3万
查看次数

仅将继承用于c ++中的多态

我正在用C++设计一个项目并且到了我怀疑的地步,而我应该使用继承来获得多态性.

具体地讲,我有一个类JazzQuartet,其具有4个对象:Saxophonist,Pianist,BassistDrummer,每一个play()listen()方法,具有不同的实现.

我想让它们都继承自一个类,Musician所以我可以拥有一个Musician对象数组并调用每个play()人和listen()方法,所以我可以Musician listen()对任何其他人做任何事.但是由于它们的实现完全不同,我只是为了获得多态性而使用这种遗产,我不确定这是否是一个好的设计选择.

对此事有何建议?

谢谢大家!

c++ polymorphism inheritance

4
推荐指数
3
解决办法
239
查看次数

标签 统计

c++ ×2

constructor ×1

inheritance ×1

parameters ×1

polymorphism ×1