很抱歉新手问题,但我想引用类/结构类型的组件作为参数传递给函数。我不知道是否使用
blah.memberFunction(&blah.component)
或
blah.memberFunction((&blah).component)
答案 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
}