很抱歉这个新手问题,但我想引用类/结构类型的组件作为函数中的参数传递。不知道要不要用
blah.memberFunction(&blah.component)
或者
blah.memberFunction((&blah).component)
假设您的成员函数如下所示:
blah::memberFunction(blahType& component)
调用它是这样的:
blah.memberFunction(blah.component)
运算符的使用&
为您提供了一个与引用不同的指针。引用不需要运算符。
您是否将类组件称为数据成员?在您正在谈论的特定情况下:在大多数情况下,使用成员作为参数调用方法是无用的。考虑代码:
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
}