簡體   English   中英

C ++繼承枚舉

[英]C++ Inheritance Enum

在C ++中,我有一個基類A,例如:

class A {
    enum type {B, C, D, E};
    ....
    ....
}

對於每種枚舉類型,我都有一個從基A派生的類。
例如,我有一個這樣的班級:

class B : public A {
    int x;
    ....
    ....
};

我的問題是:對於一個A對象,從中我知道它是類型B,因此它對應於類B,是否可以訪問變量x,例如,是否可以訪問變量x? 我知道從基層訪問派生類有點棘手,但我想那是不一樣的事情。

如果您擁有A *aA &a並確定它確實指向/引用了類型B的對象,則可以使用強制轉換:

A *a = ...;
B *b = static_cast<B*>(a);

要么

A &a = ...;
B &b = static_cast<B&>(a);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM