C++:继承基类方法

标签 c++ oop

我有这个简单的代码:

class A {
public:
   string toString() const { return "A"; }
};

class B : public A {
public:
   string toString() const { // some code here }
};

我要toString()在 B 类中将继承自 A 类并采用一些额外的值。在此示例中,将是:“AB”(A:来自类 A,B:额外字符串)。

这在 Java 中很容易,但我不知道在 C++ 中如何做。我的第一个想法是从 toString() 中获取字符串在 A 类中并附加附加字符串。所以,采取这个:我使用:static_cast<A>(const_cast(this))->toString()但它不会工作:(

请帮帮我。谢谢:)

最佳答案

class A {
public:
   string toString() const { return "A"; }
};

class B : public A {
public:
   string toString() const { return A::toString() + "B"; }
};

在 MS 实现中(在 Windows 上),您可以改用 __super::toString() ,但这是一个不可移植的 MS 扩展。

关于C++:继承基类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13501071/

相关文章:

c++ - OpenGL 中的 BMP 屏幕截图

c++ - 声明 const 时模板成员函数解析失败

Javascript OOP继承创建GLOBAL对象

oop - 在 OOP 中设计食品配料类

C++:对 child 隐藏方法

c++ - 新手错误 "expression must have integral or enum type"

c++ - 相互引用的常量对象

计算行驶里程和 MPH 的 C++ 程序

python - 如何在类启动中删除不需要的参数?

java - 为什么我可以在没有 "throws"关键字的情况下声明一个函数?