[問題] 類別:繼承與指定運算子

看板C_and_CPP (C/C++)作者 (耗呆肥羊)時間13年前 (2013/05/16 01:15), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/1
各位大大早安 (∩_∩) 我有問題 【工具】: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

05/16 15:27, , 1F
那一行不就是shape::operator= 嗎? 但是沒看過有人這樣寫
05/16 15:27, 1F
啊?…是嗎? 0.0" ※ 編輯: johnhmj 來自: 180.218.12.32 (05/16 18:19)
文章代碼(AID): #1HayAagc (C_and_CPP)
文章代碼(AID): #1HayAagc (C_and_CPP)