2017-04-23 136 views
0
#include<iostream> 

class Foo { 
    protected: // Make x visible to derived classes 
     int x; 
    public: 
     Foo() { 
      x = 2; 
     } 
}; 

class Derived : public Foo { 
    public: 
     Derived() { 
      x = 4; 
     } 

     void print(){ 
      std::cout << x << std::endl; 
     } 
}; 


int main() { 
    Derived a; 
    a.print(); 
} 

這打印出來4.我想在print.I中訪問兩個x的值。我想打印2和4兩個文件。我是否需要在Derived類中創建Foo對象並通過object.x訪問它?它不止一次地調用了Foo的構造函數。我不希望發生這種情況。如何從派生類中的基類訪問變量的值?

+2

爲Derived類使用單獨的成員變量? –

+5

變量一次只有一個值。 –

+3

*「我想同時打印2和4」* - 'std :: cout << 2 << 4 <<'\ n''?說真的,你是什麼意思? –

回答

0

只有一個x在對象總數中。 Foo部件中沒有一個,Derived部件中有一個。所以當你的派生構造函數分配4到x那麼這就是變量的值,period。 如果你需要保存兩個不同的值,那麼你需要兩個變量。

2

您需要兩個變量來保存兩個值。

相關問題