簡體   English   中英

在子類構造函數中重寫父類變量

[英]overriding parent class variable in child class constructor

我試圖弄清楚如何在子類構造函數中更改父變量。 我現在在構造函數主體中擁有的內容drawable::bounce = wall::bounce ,似乎並未覆蓋drawable::bounce默認值。 正確的方法是什么?

可繪制類:

class drawable {
protected:
   window w;
   vector location;
   vector size;
   vector bounce;

牆類構造函數:

wall::wall(window & w, const vector & start, const vector & end, 
int update_interval, const vector& bounce):

rectangle(w, start, end),
filled(false),
update_interval(update_interval),
update_count(0)

{
    drawable::bounce = wall::bounce;
}

drawable::bouncewall::bounce是同一個對象,即在wall對象的drawable基類子對象中找到的成員bounce 因此,您當前的賦值語句不執行任何操作。

您可能需要以下內容:

this->bounce = bounce;

bounce成員設置為等於bounce參數。 請注意, bounce無需附加限定即可引用該參數,因為該參數位於最嵌套的范圍內。

另一種可能的解決方案是為drawable另一個構造器提供一個帶有bounce參數的構造器,並將bouncewall構造器傳遞到drawable構造器。 這樣做的好處是, bounce僅設置一次,而不是初始化為空然后重新分配。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM