如何在 C++ 中将对象传递给函数?


将对象传递给函数有四种方法。假设您有一个类 X 并希望将其传递给函数 fun,则 -

按值传递

这会在函数作用域中创建对象的浅拷贝。您在此处修改的内容不会反映在传递给它的对象中。例如,

声明

void fun(X x);

调用

X x;
fun(x);

按引用传递

这将对象的引用传递给函数。您在此处修改的内容将反映在传递给它的对象中。不会创建对象的副本。例如,

声明

void fun(X &x);

调用

X x;
fun(x);

按常量引用传递

这将对象的常量引用传递给函数。您不能在此处直接修改/重新分配对象(尽管您可以使用执行此操作的方法)。如果您希望函数仅拥有对象的只读副本,这将很有用。不会创建对象的副本。例如,

声明

void fun(X const &x);

调用

X x;
fun(x);

按常量指针传递

这将对象的常量指针传递给函数。您不能在此处修改/重新分配指针。如果您希望函数仅在指针中拥有此对象的地址,这将很有用。不会创建对象的副本。例如,

声明

void fun(X const *x);

调用

X x;
fun(&x);

按常量指针传递

这将对象的指针传递给函数。这类似于将对象的引用传递给函数。不会创建对象的副本。例如,

声明

void fun(X *x);

调用

X x;
fun(&x);

更新于: 2019-07-30

674 次浏览

开启你的 职业生涯

完成课程获得认证

开始学习
广告