以指针为返回值的C++嵌套函数

标签 c++ function pointers copy nested

我有一个包含指针的类

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/

相关文章:

c++ - 当我使用直接初始化与 std::initializer_list 时的不同指令

c++ - 这里是否需要extern关键字,cpp文件中的const

c - 指向 C 中函数数组的指针

matlab - 在输出向量的匿名函数中创建可变数量的项

c - 结构数组的参数类型不兼容

c++ - 具有 XPath 和宽字符支持的最轻量级 XML 解析器

c++ - 使用 BFS 在 Boost BGL 图中查找所有可达的顶点

javascript - JS函数被调用两次?

c - null 和 NULL ,有什么区别吗?

c++ - 为什么要从这个析构函数和赋值运算符中的指针中减去?