看板 C_and_CPP 關於我們 聯絡資訊
各位大大早安 (∩_∩) 我有問題 【工具】: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
hpps:那一行不就是shape::operator= 嗎? 但是沒看過有人這樣寫 05/16 15:27
啊?…是嗎? 0.0" ※ 編輯: johnhmj 來自: 180.218.12.32 (05/16 18:19)