2011-08-10 70 views
3

下面是一個代碼片段,它自己說明。謝謝!派生類的高效交換方法

class Foo : private std::vector<int> 
{ 
public: 
    void swap(Foo& x) 
    { 
     std::swap(bar, x.bar); 
     // what goes here? 
    } 
private: 
    int bar; 
}; 

回答

9
std::vector<int>::swap(x); 

但是,你不應該從矢量繼承。

由於injected-class-names,這可以被改寫爲

vector::swap(x); 
+3

有來自'VECTOR'私下繼承沒有問題。 –

+0

我的錯誤,我沒有看到「私人」。 –

+1

@Andrea:希望你不要介意我的附錄 –