c++ 子類能否使用父類的類內定義類型?
02-08
如
class A
{
public:
enum Cmd{down,up,left,right};
Cmd cmd;
}
class B: public A
{
B()
{
Cmd cmd1 = down;//這裡可以成功嗎?
}
}
可以,因為A::Cmd是public或者protected的。但是我十分建議你使用enum class代替enum。
類中嵌套定義的類型能不能用,和類的成員函數一樣,看訪問級別。
定義為public的隨便用。
定義為protected的話,沒關係的外人不能用。
定義為private的話,只有自己的成員和friend能用。
你這個Cmd定義為public,不僅子類能用,沒有關係的外人也能用。
試試不就知道了。還把輪子哥招來。輪子哥每天美腿推送都來不及。看你這幾分鐘就能出答案的東西。
自己上編譯器試試就知道了十分建議把類內定義的類放在保護空間中。你放在public, 和放在外邊有什麼區別呢?
你父母一輩子掙的錢,你最後能不能繼承下來呢
推薦閱讀: