최근에 다른 C++ 문제가 발생하여 다소 힘든 시간을 보냈습니다. 우리는 작은 프로그램이 있다고 가정 :이 경우가상 클래스에 대한 포인터
class A {
public:
virtual bool c() = 0;
virtual bool b() = { return false; };
virtual ~A() {}
}
class B : public A {
public:
bool b() = { return true; };
~B() {}
}
...
void c(A *pointer) {
if (pointer->b()) {
cout << "Derived class";
}
}
이 컴파일러 오류 "불완전한 A 형에 멤버 액세스"와 방법 C()의 "만약"줄에 오류를 반환합니다. 누군가가 왜 컴파일러가 그러한 오류를 반환하는지 설명 할 수 있습니까? 그리고 실제로 예외를 해고하는 것이 옳다면 어떻게 방지 할 수 있습니까?
대단히 감사합니다.
게시 한 코드를 실제로 컴파일하려고합니까? 코드에 몇 가지 구문 오류가 있습니다. 그리고 그건 그렇고 : 당신의 코드를 복사하고 간단한 오류를 해결했습니다. 모든 것이 잘 컴파일됩니다. –