이 예제를 고려하십시오개체 생성 전에 멤버 함수가 준비되어 있습니까?
#include <iostream>
class myclass
{
public:
void print() { std::cout << "myclass"; }
};
int main()
{
myclass* p = 0x0; // any address
p->print(); // prints "myclass"
}
나는 myClass 타입의 객체를 통해 멤버 함수 print
를 호출하지 않았다. 대신 포인터를 메모리의 임의의 위치로 호출했습니다. 이것은 정의 된 행동입니까? 즉, myclass
유형의 객체를 만들기 전에 멤버 함수가 실행되도록 보장됩니까?
null로 작업하는 멤버 함수가 다른 질문을 던졌습니다. http://stackoverflow.com/questions/1148328/why-does-this-code-only-print-42/ – GManNickG