→ hpps:那一行不就是shape::operator= 嗎? 但是沒看過有人這樣寫 05/16 15:27
啊?…是嗎? 0.0"
※ 編輯: johnhmj 來自: 180.218.12.32 (05/16 18:19)
各位大大早安 (∩_∩) 我有問題
【工具】:VS2012 Express
【原始碼】:https://gist.github.com/johnhmj/5585315
上面原始碼,編譯與執行都沒有遇到錯誤,但是…
我目前的問題是,我對於運算子的寫法,我不知道在寫法上是否正確(是否安全)。
原始碼寫的是"圓"(circle)去繼承"形"(shape),我的問題是…
circle& circle::operator=(const circle& c)
{
if(this == &c)
{
return *this;
}
(shape&)*this = (shape&)c; // <<<<<< 這行寫法安全嗎?
this->m_radius = c.m_radius;
return *this;
}
當子類別接收物件(或參數),假如父類別成員太多,不要一個一個去設值,
如何將物件(或參數)安全地設值給父類別?
谷哥找不到上面這種寫法,但是有找到老外是用 using shape::operator=; 去呼
叫運算子 this->shape::operator=(c);
--
To 小天使: 小天使小天使(∩_∩)可以給我抱一下嗎?
★███小天使 可以啊~(抱)
To 小天使: 哇~( ̄y▽ ̄)╭好棒喔~終於抱到小天使了~哈哈
★███小天使 >////<
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.0.52.48