使用纯虚拟方法在C 中初始化抽象类
Initialising an abstract class in c++ with pure virtual method
我正在尝试解决这个问题 - 我有一个基类:
class Original {
private:
string inputPath;
string outputPath;
public:
void takeInput(string path);
void putOutput(string input, string output);
virtual void doFilter(ifstream &in, ofstream &out) = 0;
virtual char transform(char a) = 0;
};
和一个实现它的类:
class Transform : public Original {
public:
char transform(char a);
};
但是,当我尝试在Main中使用Transform
类时,例如
Transform t;
Original *org = *t;
它给我一个错误
Variable type 'Transform' is an abstract class.
我已经在transform ::变换中实现了一些东西,现在完全丢失了。如何初始化转换类?
Original
中有两个纯虚拟成员函数:
class Original {
// ...
virtual void doFilter(ifstream &in, ofstream &out) = 0;
virtual char transform(char a) = 0;
};
您在Transform
中提供了transform
的替代,但doFilter
仍然是纯虚拟的。由于Transform
具有纯虚拟成员函数,因此它也被认为是无法构建的抽象类。为了构建Transform
,您还需要为第二个功能提供覆盖。
相关文章:
- C++初始化基类
- 为什么在C++中首先初始化成员类
- 初始化指向类实例的智能指针并访问其方法
- ATL::CComContainedObject<contained>: C2259 无法实例化抽象类
- C++17 使用驱动类常量作为基类构造函数的参数来初始化基类构造函数
- 初始化模板类中的固定长度数组
- 在 C++11 中轻松初始化模板类的静态成员,没有 clang 警告
- 如何从子类的构造函数初始化父类的私有成员
- C++构造函数如何初始化其类的对象?
- 如何使用其中一个具体类实例化抽象类?
- 我是否需要在虚拟继承类的构造函数中初始化基类以解决菱形继承问题?
- 如何从静态类函数初始化静态类对象
- 如何初始化对类内变量的静态引用,以便在嵌套类中使用
- OOP - 抽象类类型,初始化基类和派生类中的变量
- 如何从其抽象母类上的指针初始化子类?
- 我应该初始化抽象类的成员吗?
- C++:正确初始化抽象类的构造函数
- 使用纯虚拟方法在C 中初始化抽象类
- 在C++中初始化抽象基类的子类数组
- 初始化抽象类的虚基类