gpt4 book ai didi

C++传递成员字段

转载 作者:太空宇宙 更新时间:2023-11-04 15:06:19 24 4
gpt4 key购买 nike

这是一种愚蠢的简单问题,我正在学习 C++ 并有以下类(class)......

class Client
{
public:
Window getWindow() { return window; };

private:
Window window;
};

我想知道的是 getWindow() 会返回对我的私有(private) window 对象的引用还是一个拷贝?我应该在这里改用指针吗?

让我感到困惑的是,在 Java 中,new 关键字使创建对象的时间和位置变得非常清楚,而在 cpp 中则不太清楚,而我使用 C 的经验使事情变得更糟。

谢谢,科迪

最佳答案

除非并且直到您明确声明要返回引用,否则它将返回一个拷贝。请注意,至少在 C++ 中返回指针不是一个好主意

要返回引用,您必须添加 &到返回类型

class Client
{
public:
Window& getWindow() { return window; };

private:
Window window;
};

<罢工>请注意,如果您担心返回值的开销,您可以放心,所有最新的编译器都会在某种程度上做到这一点 return value optimization .此外,如果您使用的是 C++11,您还可以利用移动语义。

关于C++传递成员字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14231936/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com