c++ - C++ 中最好的 OO 设计实现?

原文 标签 c++ oop

这可能更多的是关于味道。

像这样的东西:

class A:public vector<int>{};

class B:public vector<A>{
};

class C{
public:
vector<B> cs;
};

现在我要实现的是A中的一个函数它接收 C 的对象.像这样的东西:
class A:vector<int>{
void foo( C &c);
};

这是不可能的,因为 C需要BB需要A被完全宣布。然后我看到 2 个选项:

1) 将 foo 设为:void foo(void *c);并在实现上(在 A.cpp 中)进行强制转换。这个问题不是很好也不是很干净,对其他开发人员来说有点困惑。

2)在我正在处理的命名空间上创建一个对象。这违反了 SOLID 原则,尤其是单一责任原则。

也许还有第三种我看不到的方式,它没有不方便。任何人都可以告诉我是否有更正确的剂量形式?

最佳答案

使用前向声明:

class C;

关于c++ - C++ 中最好的 OO 设计实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16187931/

相关文章:

c++ - 在C++中构建QtDropbox(找不到QLocale)

javascript - 为了重构一个大型项目,可以在Javascript中声明一个对象与自身相等吗

c++ - C++中的凯撒密码

c++ - 什么是 Microsoft Media Foundation 等效于 Directshow 自定义视频过滤器?

r - 如何测试对象是否具有特定方法?

java - 继承实现

java - 如何在类对象属性的哈希图上使用可比较

java - java-无法转换为子类

c++ - 多种序列化目标/格式的设计方法(不是版本)

c++ - 如何创建/设计数据结构?