,如果我要創建我有這個基類C++ - 從抽象對象創建非抽象對象
class Object {
...
public:
virtual void move() = 0;
virtual void move(string) = 0;
virtual void powerOn() = 0;
virtual void powerOff() = 0;
virtual void speak() = 0;
};
這將是不同類
class Electronics : public Object {
...
public:
virtual void powerOn();
virtual void powerOff();
};
void Electronics::powerOn() { ... }
void Electronics::powerOff() { ... }
class Phone : public Electronics {
...
public:
};
基類現在,一個對象Phone,它使用powerOn()和powerOff()方法。我不需要其他三種方法。
Object *obj = new Phone;
但是,這可能會給我一個錯誤說
undefined reference to move()
undefined reference to move(string)
undefined reference to speak()
我的問題是,如何避免這個錯誤。我不需要這些Phone的功能,但它需要我對他們做些什麼。我怎麼能通過這個錯誤?
感謝
你可以從Object中刪除這些函數,並在你真正需要它們的較低的子類中使用它們 – Pooya
我需要稍後做類似以下操作:Object * phone = new Phone。然後,當我打電話給phone-> powerOn()時,它會說Object類 –