在C++中,是否有一種標準方法可以在可以使用派生類變量的基類中創建函數?使用派生類變量的基類函數
class Foo{
private:
int x;
public:
Foo(){
x = 2;
}
void print(){
std::cout << x << std::endl;
}
};
class Derived : public Foo{
private:
int x;
public:
Derived(){
x = 4;
}
};
void main()
{
Derived a;
a.print();
}
此代碼打印基類(2)的變量。有沒有辦法使許多派生類使用的函數使用類的私有變量而不將它們作爲參數傳遞?
編輯:我的意圖是,避免爲每個派生類編寫相同的代碼。 例如,我想要一個get_var(),但是這個函數應該返回自己類的變量。我知道我可以做出虛擬和重寫,但我正在尋找一種我不需要一次又一次寫入的方式。
的基類應該不知道它的派生類型。要求這是一個糟糕的設計。 – juanchopanza 2014-09-25 12:20:42
你需要實現一個虛擬的'getA'方法。 – 2014-09-25 12:20:43
如果您將'x'聲明爲在Foo中受到保護,而不是在Derived中再次聲明它。那是你要的嗎? – Albi 2014-09-25 12:21:22