快速問題:我有一個基類與成員變量,我試圖'重寫'派生類中的這個值。我該如何做到這一點?'重寫'類成員
我嘗試:
class A
{
public:
double i = 1;
};
class B : public A
{
public:
double i = 2;
};
int main(int argc, char** argv)
{
B* b = new B();
A* a = b;
std::cout << b->i << '\t' << a->i << std::endl; // output 2 1
}
但是所期望的輸出是 '2 2'。 我在做什麼錯?
感謝,
尼克拉斯
使用虛擬功能。 – Quentin
您可以覆蓋虛擬功能,而不是數據成員。 – interjay
爲什麼不在'B'的構造函數中爲'i'分配一個新值? – UnholySheep