"因为拷贝构造函数实现传值方式的参数传递和返回,",不理解,期待专家。
"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