我有一個具有幾個int和一個const int成員且定義了構造函數的類。使用int成員實現哪些運算符
class SomeContainer
{
public:
SomeContainer():
member1(0),
member2(staticMethod())
{}
private:
static int staticMethod();
int member1;
const int member2;
}
我需要的,因爲我使用這個類在另一個類MainClass和代碼
MainClass* p1;
MainClass* p2
{
//...
*p1 = *p2 // fails since SomeContainer doesn't have copy assignment operator
}
如果這個代碼是不夠還是我失去任何東西來創建一個賦值運算符?
{
SomeContainer(const SomeContainer& other): // copy ctor
member1(other.member1),
member2(other.member2)
{}
SomeContainer& operator=(const SomeContainer& other) // assignment operator
{
member1 = other.member1;
}
}
如何移動ctor和移動任務?我是否也需要實施這些?
'P1 = P2;'無關與類的拷貝賦值運算符。這些都是指針。 – chris
推測你的意思是'* p1 = * p2'? –
@ 0x499602D2:如果他想複製,那麼他會這麼做,因爲'const'成員意味着不存在默認的賦值語義。 –