c++ - 将类作为参数传递,但仍使用点运算符?

标签 c++

这个问题有很多相当复杂的背景,需要很长时间才能解释......所以我大幅简化并省略了很多细节......

本质上我有一个函数,其中我有一个类的实例。 Class 类型是 Mat,实例是“Fred”。所以我可以使用点 (.) 运算符访问 Fred 类中的数据,即 Fred.data。我现在想调用第二个函数,我希望在其中对 Fred 进行一些处理。如果我将指针传递给 Fred,则第二个函数将必须使用箭头运算符 (->) 访问它的数据。

我想知道我是否可以以不同的方式传递 Fred,以便 function2 中的代码可以使用 Jim.data 访问数据?

void function1()
{
  // some code here involving Fred

  int x = Fred.data;

  function2(&Fred)
}
void function2(Mat *Jim)
{ 
  int y = Jim->data;
}

最佳答案

通过引用传递

void function2(Mat& Jim)

尽管直接访问数据成员有点代码味道。

关于c++ - 将类作为参数传递,但仍使用点运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24558151/

相关文章:

c++ - 如何将我自己的排序算法与其他排序算法进行比较?

c++ - 阅读 CF、PF、ZF、SF、OF

c++ - QMetaObject::invokeMethod 执行被推迟

c++ - 如何用 1000000 个元素声明类 C++

c++ - 流式运算符和多态基类列表

C++ 试图重新分配对实例对象的引用

输入对象没有 const 的 C++ 重载 << 会产生错误,该错误随 const 对象一起消失

c++ - 为什么当我进入退出条件时程序打印两次默认条件而不是退出 while 循环?

c++ - 如何从 char 数组中删除前 4 个字符

c++ - qt 应用程序崩溃但不容易重现,我已经捕获了转储堆栈以及如何通过堆栈查找源代码