- 已关闭**。此问题需要details or clarity。当前不接受答案。
- 想要改进此问题?**添加详细信息并通过editing this post阐明问题。
3天前关闭。
Improve this question
我寻求一个解释,为什么成员类不像成员函数那样工作。
下面是一个简单的例子:
#include <iostream>
class Base
{
public:
Base ():my_stuff ()
{
};
struct Stuff
{
Stuff ()
{
std::cout << "Base created Stuff" << std::endl;
};
};
Stuff my_stuff;
};
class Derived: Base
{
public:
struct Stuff
{
Stuff ()
{
std::cout << "Derived created Stuff" << std::endl;
};
};
};
int
main ()
{
Base the_base;
Derived the_derived;
return (0);
}
输出:
基地创建的东西
基地创建的东西
与所需输出:
基地创建的东西
派生创建的内容
许多类似的例子都是类似的,除非我显式地重载了构造函数。假设我想避免这种情况,就像我的例子一样,因为我有大量的派生类。
我怀疑是否有解决方案,否则编译器可能会允许我编写"虚类"作为说明符,这实际上是我的目标。
我承认这听起来可能不合理,但Python允许这样做,我最近做了转换:)
先谢了!
编辑:评论指出这个问题并不清楚,所以我会再试一次。对于相关的类A,B,C ......分别使用组件X,Y,Z ......,但以相同的方式使用,什么被认为是好的实践(或好的模式)?
以迭代器为例。每个标准容器实现自己的迭代器。因此,我期望存在一个公共容器祖先,将迭代器的基类作为成员。如果是这样,它是如何实现的?
再次感谢
1条答案
按热度按时间mzillmmw1#
虚(内部)类在C++中是不可能的。
模板可能有助于:
Demo