2017-06-15 78 views
0

有人可以解釋我這種可以在Y類中找到的「繼承」:private?C++:另一個類中的類作爲類型?

class X 
{ 
    private: char c_; 
    public: X(char c) : c_(c){} 
}; 

class Y 
{ 
    private: X x_; // What is this ? 
    public: Y(X x): x_(x){} 
}; 

int main() 
{ 
    X m('a'); 
    Y *test = new Y(m); 

    delete test; 
    return 0; 
} 
+7

與'private:char c_;'相同。這只是一個成員變量。聽起來像你可以使用[良好的C++書](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list) – NathanOliver

+0

@NathanOliver所以它只是同義詞?與X類的屬性無關? –

+0

不,它不是同義詞。它聲明瞭一個名爲'x'的類成員,其類型爲'X'。就像'private:char c_;'聲明一個類型爲'char'的類'c'。 – NathanOliver

回答

1

這不是繼承,爲Y不從X派生。

這只是簡單的封裝X x只是Y的成員變量,與char c_X的成員變量無異。

+0

那麼,它與上面的'class X'沒有關係? 'X'類型的成員變量被保存爲數字('int,double')還是保存爲'char'? –

+0

@RyadKovach我不明白你在問什麼。 –

+0

@RemyLebau只是想確定,'Y類'與'X類'無關? –

相關問題