gpt4 book ai didi

c++ - 重构类层次结构的最佳方式

转载 作者:行者123 更新时间:2023-11-30 03:37:46 25 4
gpt4 key购买 nike

我有一个 CGrandMother 类,它有一个公共(public)方法 virtual bool Compute()

virtual bool Compute()
{
return false;
}

CGrandMother 派生出公开的 CMother,它没有实现 Compute。现在从 CMother 派生出公开的 C1C2 来实现 virtual bool Compute()。现在 virtual bool C1::Compute()virtual bool C2::Compute() 分别做了很多适合 C1 和到 C2,还有许多适用于 CMother 的相同内容。现在有一个类 CFamily 有一个指向 CMother 的指针作为成员,代码中的几乎所有地方 Compute 都是通过以下形式的行调用的

ptrCMother->Compute();

我怎样才能分解出与 C1C2 中完成的 CMother 相关的常见内容,这样我就不必更改所有内容那些 ptrCMother->Compute(); 行?

最佳答案

答案应该很简单。你说“很多相同的东西适合 CMother”。所以你应该把它们分解成 CMother 的成员函数。由于似乎只有从 CMother 派生的类才需要该功能,因此您应该将新成员函数标记为“ protected ”。 @0x5453 说的是一种方式;但我建议使用一个新函数,以便单独使用公共(public)方法 CMother::Compute。 CMother 的另一个子类可能没有实现 Compute 并且依赖于 CMother::Compute 来做某些事情。

关于c++ - 重构类层次结构的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40043292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com