[問題] 子類別覆寫父類別成員變數
如題
假使父類別有個member variable,在父類別的function中被使用
我繼承了一個子類別,想要用一個新的東西去替代父類別中的member variable
不知道是否有辦法做到呢
程式碼如下:
tool_base是在原先base中被使用的class
我繼承了這兩個class,想改寫一部份的行為 (derived & tool_derived)
不知道是否有辦法直接覆寫掉呢?
class tool_base
{
public:
tool_base()
{
}
~tool_base()
{
}
void show_name()
{
printf("my name is tool_base\n");
}
};
class tool_derived : public tool_base
{
public:
tool_derived()
{
}
~tool_derived()
{
}
virtual void show_name()
{
printf("my name is tool_derived\n");
}
};
class base
{
public:
base()
{
}
~base()
{
}
void show_tool_name()
{
tool.show_name();
}
tool_base tool;
};
class derived : public base
{
public:
derived()
{
}
~derived()
{
}
tool_derived tool;
};
derived d;
d.show_tool_name(); <--- 其實我這邊預期的是希望會呼叫tool_derived.show_name()
這樣子的想法不知道是否有辦法達成呢,謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.120.66.84
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1411614303.A.FCF.html
→
09/25 11:24, , 1F
09/25 11:24, 1F
→
09/25 11:43, , 2F
09/25 11:43, 2F
→
09/25 11:48, , 3F
09/25 11:48, 3F
→
09/25 11:49, , 4F
09/25 11:49, 4F
→
09/25 11:50, , 5F
09/25 11:50, 5F
→
09/25 11:50, , 6F
09/25 11:50, 6F
→
09/25 11:51, , 7F
09/25 11:51, 7F
→
09/25 16:20, , 8F
09/25 16:20, 8F
→
09/25 16:42, , 9F
09/25 16:42, 9F
→
09/25 16:43, , 10F
09/25 16:43, 10F