초보자 질문에 대해 유감이지만 함수의 매개 변수로 전달할 클래스/구조체 형식의 구성 요소를 참조하려고합니다. 나는 당신의 멤버 함수는 다음과 같습니다 가정C++에서 구조체 구성 요소를 참조하는 방법
blah.memberFunction(&blah.component)
또는
blah.memberFunction((&blah).component)
초보자 질문에 대해 유감이지만 함수의 매개 변수로 전달할 클래스/구조체 형식의 구성 요소를 참조하려고합니다. 나는 당신의 멤버 함수는 다음과 같습니다 가정C++에서 구조체 구성 요소를 참조하는 방법
blah.memberFunction(&blah.component)
또는
blah.memberFunction((&blah).component)
사용 여부를 모르는 :
blah.memberFunction(blah.component)
:
blah::memberFunction(blahType& component)
이 그것을 호출하는 것은 이것이다 &
ope 사용 rator는 참조와 다른 포인터를 제공합니다. 참조에는 연산자가 필요 없습니다.
클래스 구성 요소를 data members으로 사용하고 있습니까? 특정 경우에 대해 이야기하고 있습니다. 멤버를 매개 변수로 사용하는 메서드 호출은 대부분의 경우 쓸모가 없습니다. 클래스 메서드에 이미 데이터 멤버에 액세스 할 수
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
}
당신은 포인터 나 참조를 통과하고 싶은가를? – Pubby
C++ 11을 사용하는 경우 람다를 고려하십시오 : [] (T blah) {return blah.component; } –
@Pubby reference – gr33kbo1