2014-01-28 18 views
0

有什么办法可以在C++中实现拷贝构造函数,它只拷贝一些特定的成员并实现其他成员的移动。C++中是否有任何部分拷贝构造函数?

例如,我有一个类

class partialCopy 
{ 
    int a; 
    int largeArray[1000] ; 
} 

现在使用移动构造函数假设我要保持对象largeArray两者之间只有一个副本,并使用副本我可以保持整数的单独副本相同的两个之间对象。

编码时可能会出现这种情况。

任何人都可以分享这个想法吗?

+1

这将是无效的,你需要使用一个指针,而不是一个数组这个工作。 –

+1

请参阅['std :: shared_ptr'](http://en.cppreference.com/w/cpp/memory/shared_ptr) – Erbureth

+3

复制构造函数完全由其签名定义,而不是由它的功能定义。你可以写你自己的拷贝构造函数,做任何你想做的事情,从无到有,将所有事情复制到发动核攻击。当然,你要确保它和其他同学一起工作。 –

回答

5

这对于智能指针工作:

class partialCopy { 
    int a; 
    std::shared_ptr<int, std::default_delete<int[]> > array; 
}; 

这样你就不需要担心这些事情 - 默认生成的特殊成员函数会做正确的事情你。