"因为拷贝构造函数实现传值方式的参数传递和返回,",不理解,期待专家。
"Because the copy-constructor implements pass and return by value,......"
- think in c++
"因为拷贝构造函数实现传值方式的参数传递和返回,",不理解,期待专家。
[解决办法]
因为后半句才有真正的意义。你着眼点错了,自然就难理解这句话。
换本好点的书看吧。
[解决办法]
这句话的意思是 参数的和返回值的传递是用构造函数来实现的.
原翻译真烂
[解决办法]
传递返回值是copy-initialization,对于类类型的值调用copy/move ctor。
[解决办法]
引用和传递的区别
[解决办法]
翻译的烂,按effective c++中说法是:
copy构造函数定义了一个对象如何passed by value,函数参数的传递和返回就是对象passed by value的过程
[解决办法]
我想问一下,关于拷贝构造函数,因为参数是引用,但是我手头上只有一个指向那个对象的指针,所以我想以这个指针作为参数,那么我该怎么写,或者说怎么用呢?
[解决办法]
可以肯定的是copy constructor没有返回参数,而且我测试过,编译器合成的默认构造也不会以值来传递.
虽然做这种测试已经是很傻了.
看了10几分钟.作者说得是这句
// Pass and return BY VALUE:
HowMany f(HowMany x) {
x.print("x argument inside f()");
return x;
}
"Because the copy-constructor implements pass and return by value,
it’s important that the compiler creates one for you in the case of
simple structures – effectively, the same thing it does in C."
作者意思就是,复制构造会在以值的方式进行传参和以值返回的情况下发生.所以就编译器来说,对普通的struct创建默认的复制构造函数,这很重要.实际上,在C语言中编译器就是这么做的.
原话是应该少了个when
Because the copy-constructor implements (when) pass and return by value