다음 코드를 감안할 때 :함수에 대한 참조를 전달하는 가장 좋은 방법은 무엇입니까?
[example.h]
class MyClass
{
public:
MyClass();
std::string name;
std::string address;
bool method (MyClass &object);
};
[example.cpp]
MyClass::MyClass()
{
}
bool MyClass::method (MyClass &object) {
try {
object.name = "New Name";
std::cout << "Name: " << object.name << " " << object.address << std::endl;
return true;
}
catch (...) {
return false;
}
}
[Test.cpp에 이상 main
에 myC.method
라고 한 I 방식의 차이는 무엇
#include "example.h"
int main()
{
MyClass myC;
myC.address = "address";
bool quest = myC.method(myC);
}
, 그렇게하는 다른 방법 :
MyClass *myC = new MyClass();
bool quest = myC.method(*myC);
더 나은 이유는 무엇입니까?
을 : 사과 또는 망치를? – ereOn
분명히 망치 :-) –
'MyClass :: method'가'MyClass & object'를 취할 필요가 없다는 것에 주목하고 싶을지도 모릅니다. - myC.method()로 호출하면, 이미 액세스 할 수 있습니다 'this' 포인터를 사용하는'method'의'myC '. –