置頂
                            
                        
                        
                        
                        
                        關於 return reference
在設計類別的時候一般不會直接 return private member 的 reference,
而是提供 getter 和 setter,這是封裝上的考量。
但我現在有個類別設計上的疑慮,以下是個簡化的範例:
class IDrive
{
public:
    virtual void run(void) = 0;
};
class CDDrive: public IDrive
{
public:
    void run(void) { /* do something */ }
};
class Computer
{
public:
    const IDrive& getDrive() const { return drive; }
private:
    CDDrive drive;
};
現在我有個外部函式需要 IDrive 類別作為引數,
void foo(IDrive &drive);
如果我直接呼叫 foo(computer.getDrive());
編譯時會遇到 const 報錯。
想問一下這種情況應該要 return reference 嗎?
或是有其他更好的設計?謝謝!
                    
                   會員登入
                   (先登入會員才能回覆留言喔!)
                
   
                
             
                                      