gpt4 book ai didi

c++ - 将结构对象作为参数传递给 C++ 中的函数是一种好习惯吗?

转载 作者:可可西里 更新时间:2023-11-01 16:57:06 24 4
gpt4 key购买 nike

我在下面尝试了一个例子:

typedef struct point
{
int x;
int y;
} point;

void cp(point p)
{
cout<<p.x<<endl;
cout<<p.y<<endl;
}

int main()
{
point p1;
p1.x=1;
p1.y=2;
cp(p1);
}

打印出来的结果是:

1
2

这是我所期望的。我的问题是:参数 p 是否获得了对象 p1 的完整拷贝?如果是这样,我想知道这是否是一个好习惯? (我假设当结构变大时,这将产生大量复制开销)。

最佳答案

是的,这没有任何问题,是的,pp1 的完整拷贝。我不会调用具有两个大 intstruct,但是如果 struct 确实变大并且您不需要更改它在函数体中,你可以考虑通过 const 引用传递它:

void cp(const point& p)
{
// ...
}

关于c++ - 将结构对象作为参数传递给 C++ 中的函数是一种好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2724708/

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