我有一个包含指针的类
template<Foo> class Class{
Foo * ptr;
public:
//constructors, assignment
Foo* view(){return ptr;}
}
和以Foo*
为参数的函数
double fn(Foo*){ /*Implementation*/ }
是否执行
Class C;
fn(C.view());
导致类成员 ptr
被复制?
最佳答案
是的,指针 是按值传递的,即它被复制了。可能两次,取决于优化。它指向的内容不会被复制。
关于以指针为返回值的C++嵌套函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19304132/