아 은꼴짤 올렸다가 잘렸네 프로그래밍 갤러리 관리자 무썹..
호출자가 포인터일때 대입연산자 오버로딩은 어떻게해야함니까?
class abc
{
public:
void operator = (const abc &other)
{
printf("다른 변수대입");
}
void operator = (const abc *other)
{
printf("다른 포인터 대입");
}
void* operator = (const abc &other)// 이렇게 될줄 알았는데 안되더라공..
{
printf("호출자에 다른 변수대입")
}
}
void main()
{
abc a,b,*c;
a=&b;
a=*b;
c=&a;
}
호출자가 포인터일때 대입연산자 오버로딩은 어떻게해야함니까?
class abc
{
public:
void operator = (const abc &other)
{
printf("다른 변수대입");
}
void operator = (const abc *other)
{
printf("다른 포인터 대입");
}
void* operator = (const abc &other)// 이렇게 될줄 알았는데 안되더라공..
{
printf("호출자에 다른 변수대입")
}
}
void main()
{
abc a,b,*c;
a=&b;
a=*b;
c=&a;
}
호출자가 뭘 말하는거임?
대입연산자함수를 호출하는 변수가 포인터변수인 경우여
a=*b; 이건 뭐여 -_-
참고로 나는 싱글턴 만들어놓고 * 를 오버로딩했는데 결과적으로 이렇게 해야되는거였음. A *a; (전역객체 주소 가지고있다고 가정) 하고 * 오버로딩 함수 호출하려면 **a 라고 써야함..
옹 c++공부 하느라 이것저것 뭐가 되는지 살펴보고 있었는데 개념이해가 오락가락 하니까 어려운듯 ㅠㅠ