다음 코드기준 변수 및 상속
#include <stdio.h>
class Parent
{
public:
virtual void func() {printf("Parent\n");}
};
class Child1 : public Parent
{
virtual void func() {printf("Child1\n");}
};
class Child2 : public Parent
{
virtual void func() {printf("Child2\n");}
};
int main(int argc, char* argv[])
{
Parent & obj = Child1();
obj.func();
obj = Child2();
obj.func();
return 0;
}
다음과 같은 결과를 얻을 :
expected: Child1 Child2.
actual: Child1 Child1.
(VS2010 컴파일)에 vptr에서의 할당에 의해 변경되지 않도록
I 추측 . 거기에 그것을 다시 (부모에 대한 포인터를 사용하고 그것을 사용하여 새를 사용하여 이외의) 만들 수있는 방법은?
감사
참고 문헌은 다시 채울 수 없습니다. 게다가 임시 변수는 상수가 아닌 참조에 바인딩 될 수 없습니다. 귀하의 코드가 부적절합니다 –
왜 처음부터 참조로이 작업을 수행해야합니까? 'obj'를 변경하면, 그것을 객체 나 포인터로 만드십시오. – leftaroundabout
이것은 컴파일되지 않습니다! 여기에 실제 코드를 게시하십시오. –