0

很抱歉这个新手问题,但我想引用类/结构类型的组件作为函数中的参数传递。不知道要不要用

blah.memberFunction(&blah.component)

或者

blah.memberFunction((&blah).component)
4

2 回答 2

1

假设您的成员函数如下所示:

blah::memberFunction(blahType& component)

调用它是这样的:

blah.memberFunction(blah.component)

运算符的使用&为您提供了一个与引用不同的指针。引用不需要运算符。

于 2013-04-29T21:36:28.957 回答
0

您是否将类组件称为数据成员?在您正在谈论的特定情况下:在大多数情况下,使用成员作为参数调用方法是无用的。考虑代码:

class blah
{
public:
  blah() : component(0) {}
  void  memberFunction() { component ++; }
  int component;
}

int main()
{
   blah b;
   std::cout << b.component; //output = 0
   b.memberFunction();
   std::cout << b.component; //output =1
}

请注意,在一个类方法中我已经可以访问数据成员:为什么我应该将它用作它自己的方法的参数,这听起来有点没用吗?

无论如何,如果您真的有充分的理由使用对成员的引用来实现它,那么不仅仅是声明该方法以通过引用接收参数

class blah
{
public:
    blah() : component(0) {}
    void callMemberFunction() 
    {
        memberFunction(component);
    }
    void  memberFunction(int &member_reference) { member_reference++; }

    int component;
}

int main()
{
    blah b;
    std::cout << b.component <<"\n"; //output = 0
    b.callMemberFunction();
    std::cout << b.component <<"\n"; //output =1
}
于 2013-04-29T21:48:08.077 回答