小编Adr*_*obs的帖子

派生类可以小于其父类吗?

我问这个关于 C++ 的问题,因为我对 C++ 很熟悉,但问题确实可以解释自己:是否有一种语言可以派生一个类并使其在内存中占用的空间比原始类少?

这个问题更像是一个噱头,而不是我试图解决的实际问题,但我可以想象一些真正高性能的代码可以从这种内存优化中受益:

假设我们有:

class Person {
    std::string name;
    unsigned int age;
}

class PersonNamedJared {
}
Run Code Online (Sandbox Code Playgroud)

理论上,我们不需要这个子类中的字段“name”,因为它总是“Jared”,这可以提高内存效率。

通过用我们简单地覆盖以始终返回“Jared”Personget_name()函数替换“name”字段来实现这一点是唯一的方法PersonNamedJared吗?我们如何仍然在基类中创建 name 变量?

我知道这个例子是非常糟糕的做法,但这是我能想到的最好的做法。我认为实施这种模式是有正当理由的。

c++ inheritance derived-class memory-efficient

4
推荐指数
1
解决办法
282
查看次数