초기화되지 않은 개체에 대해 클래스 멤버 함수를 사용할 수있는 이유는 무엇입니까 (적어도 초기화되지 않았다고 생각합니다). 오류없이 다음 실행 : 지금초기화없이 클래스 멤버 함수 사용
// main.cc
#include <iostream>
#include "A.h"
int main(int argc, char **argv) {
A *myClass;
std::cout << myClass->bar(5) << "\n";
}
와
// A.h
class A {
public:
explicit A(int n) : n_(n) {};
~A() {};
int foo() {
return n_;
};
int bar(int i) {
return i;
};
private:
int n_;
};
는 확실히 myClass->foo();
실패 시도하지만, 우리가 선언 한 모든 A
에 대한 포인터가 존재 때 왜 우리는 심지어 bar()
을 사용할 수 있습니다 myClass
이라고합니다. 이 허용 코딩 스타일입니까 /이 방법을 사용하는 이유가 있습니까?
정의되지 않은 동작을 안녕하세요. –
클래스와 연관된 함수를 호출 할 수 있기를 원하지만 정적 함수를 사용하는 멤버 함수가 아닙니다. – IdeaHat
실제로 초기화되지 않은 개체가 아닙니다. A 형의 객체는 전혀 없습니다. – aschepler