相关疑难解决方法(0)

在 C++ 中调用抽象基类的构造函数

我知道如果我有一个抽象类,那么我无法创建抽象类类型的对象。但假设“Base”是基类,“Derived”是派生类。在基类中,我有一个成员变量名称。

Base.h
Base(string name = "");

Base.cpp
Base(string theName){name = theName);
Run Code Online (Sandbox Code Playgroud)

这不是创建一个对象吗?

在派生类中,我有成员变量age。现在在派生类的默认构造函数中

Derived.h
Derived(string name = "", int theAge = 0);

Derived.cpp
Derived(string theName, int theAge):Base(theName) { age = theAge }
Run Code Online (Sandbox Code Playgroud)

这不是也调用了 Base 的默认构造函数吗?那么,我是否可以调用参数化构造函数但不能调用默认构造函数?

另一件事,如果我在基类中除了纯函数之外还有另一个函数,如果不允许为基类创建对象,我如何调用该函数?

提前致谢!

c++ inheritance constructor class c++11

2
推荐指数
1
解决办法
6077
查看次数

标签 统计

c++ ×1

c++11 ×1

class ×1

constructor ×1

inheritance ×1