분명히 'grok'하지 않습니다. C++. 이 프로그래밍 할당에서 나는 막 다른 골목에 섰습니다. 이 오류 코드 줄에서 런타임 오류가 발생합니다. "런타임 오류 - 순수 가상 함수 호출"메시지와 함께 자식 클래스가 현재 인스턴스화되지 않은 동안 함수 참조가 (가상) 기본 클래스를 호출하려고하면이 오류가 발생합니다. 그러나 나는 내가이 실수를 한 곳을 보지
avr-gcc로 컴파일하는 동안 다음과 같은 링커 오류가 발생했습니다. undefined reference to `__cxa_pure_virtual'
: __cxa_pure_virtual 함수는 다음과 같은 경우에 호출되는 오류 처리기입니다. 순수 가상 함수가 호출됩니다. 순수 가상 함수가있는 C++ 응용 프로그램을 작성하려면 __cxa_pure_vir
순수 가상 함수 f()가있는 추상 클래스가 있고 해당 클래스에서 상속 된 클래스를 만들고 함수 f()를 재정의하려고합니다. 나는 헤더 파일과 cpp 파일을 분리했다. 헤더 파일에 함수 f (int)가 선언되었고 정의가 cpp 파일에 있습니다. 그러나 컴파일러에서는 파생 클래스가 여전히 추상적이라고 말합니다. 어떻게 해결할 수 있습니까?
, 순수 가상 함수의 구현을 제공하는 합법적 : class C
{
public:
virtual int f() = 0;
};
int C::f()
{
return 0;
}
왜 당신이 이제까지 이렇게 할 것 ? 관련 질문은 다음 C++ faq lite는 예를 들어 있습니다 class Funct {
public:
vir
을 구현하지 않고 템플릿 클래스를 하위 클래스라는 나는 다음과 같은 클래스 정의를 가지고 : 나는 다음과 같은 하위 클래스 생성 template<typename QueueItemT>
class QueueBC
{
protected:
QueueBC() {}
virtual ~QueueBC() {}
private:
virtual