如何在C ++中引用结构组件

时间:2013-04-29 21:26:09

标签: c++ class reference struct

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

blah.memberFunction(&blah.component)

blah.memberFunction((&blah).component)

2 个答案:

答案 0 :(得分:1)

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

blah::memberFunction(blahType& component)

调用它是这样的:

blah.memberFunction(blah.component)

使用&运算符会为您提供一个与引用不同的指针。参考文献不需要操作员。

答案 1 :(得分:0)

您是否将类组件称为data members?在您所讨论的特定情况下:在大多数情况下,使用member作为参数调用方法是无用的。考虑一下代码:

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
}

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

无论如何,如果您真的有充分的理由使用对成员的引用来实现它,而不仅仅是将方法声明为receive arguments by reference

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
}