复制构造函数 - c ++

vj0*_*j01 10 c++ constructor copy

我可以通过传入指针而不是const引用来编写复制构造函数吗?(如果我确定我不会改变任何值,那会没关系吗?)

像这样:

SampleClass::SampleClass(SampleClass* p)
{
 //do  the necessary copy functionality
}
Run Code Online (Sandbox Code Playgroud)

代替:

SampleClass::SampleClass(const SampleClass& copyObj)
{
//do the necessary copy
}
Run Code Online (Sandbox Code Playgroud)

提前致谢.


感谢大家.所以,如果我编写一个接受指针的构造函数(并认为这是我的复制构造函数),编译器仍然会提供默认的复制构造函数,在这种情况下,我的构造函数(我认为是我的复制构造函数)将不会被调用,将调用默认的复制构造函数.得到它了.

Fre*_*ool 19

是的,您可以编写一个构造函数来获取指向该对象的指针.但是,它不能称为复制构造函数.非常定义拷贝构造函数的要求传递同一类的对象.如果你传递任何其他东西,是的,它是一个构造函数,但不是一个复制构造函数.


Chr*_*ung 1

不可以。如果复制构造函数对于按值传递等有用,则它必须采用引用,而不是指针。