C ++抽象类实例在另一个类的字段中

时间:2017-05-10 18:36:08

标签: c++ reference const abstract-class

我有以下代码:

class Carb {
public:
    virtual void calorie() = 0; // pure virtual
}

class Omelette : Carb {
public:
    void calorie() {/*do something*/}; // non-virtual
}

class Breakfast {
public:
    Breakfast(const Carb &somecarb):
    my_carb(somecarb){}

private:
    const Carb &my_carb;
}


}

我知道Carb是一个虚拟类,因此不能是一个实例,但是我们可以使用来自以下stackoverflow问题的指针。

C++ : Cannot declare field to be of abstract type

C++ error: cannot declare field to be of abstract type

但是,它似乎也可以通过声明一个const引用来实现,就像我上面的代码一样。我的问题是,将一个类字段作为一个抽象类的常量引用是否有效?为什么这样做?

0 个答案:

没有答案