【发布时间】:2019-05-10 05:19:53
【问题描述】:
我正在尝试掌握如何使用虚函数。
以下是否正确?我也不会在base的.cpp文件中包含虚拟吗?
而在定义派生类的时候,是不是也要在派生类的public中声明虚函数呢?
//BASE HEADER FILE
#ifndef BASE_H
#define BASE_H
class Base {
public:
virtual double testFunc() = 0;
int func2();
};
#endif
//BASE.CPP FILE
#include "base.h"
int Base::func2()
{
return 5;
}
//DERIVED HEADER FILE
#ifndef DER_H
#define DER_H
#include "base.h"
class Derived : public Base {
public:
double testFunc();
};
#endif
//DER.CPP FILE
#include "Der.h"
double Derived::testFunc()
{
return 3.2;
}
【问题讨论】:
-
您的语法错误,您需要为您的函数定义提供范围
-
@Tejendra 你是对的!写这个的时候错过了。我现在将修复它以使我的问题更清楚。谢谢
-
您确实需要在“Der.h”中包含“base.h”,以便在
Derived的声明中引用Base时可见。 -
@NPE 也修复了这个错误。谢谢!
-
@SharkTank1 我希望答案能明确提出的两个问题。