【发布时间】:2014-09-04 10:01:33
【问题描述】:
我想写如下内容:
class A {
virtual typedef int foo_t;
void bar() {
cout << "foo_t is " << get_demangled_name(typeid(foo_t));
}
}
class B : A {
typedef float foo_t;
}
对于bar(),它的行为是多态的。但是 - 这在 C++ 中是不可能的。我应该怎么做?
【问题讨论】:
-
你为什么要那个?
-
似乎是一个 XY 问题,您认为这是某个问题的解决方案,您最好描述原始问题。 [很可能你要么想要一个模板类,要么想要两个具有不同虚函数的类,但如果你描述你要解决的实际问题,可能还有其他更好的选择]
-
@Jarod42:Gedankenexperiment。我正在努力加深我的 C++ 知识。
-
@MatsPetersson:我没有说它是任何事情的“解决方案”......
-
@einpoklum:这不是刻薄,而是试图通过了解您的问题来回答您提出的问题,而不是回答您不想要的东西。当然,如果这个问题类似于“如果月亮是用奶酪做的,它尝起来是什么味道”,那么答案很可能是“没人知道,因为月亮不是用奶酪做的”。
标签: c++ inheritance types polymorphism shadowing