最好的OO设计实现在c++中

Best OO design implementation in C++?

本文关键字:实现 c++ OO      更新时间:2023-10-16

这可能更关乎品味。

像这样:

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完全声明。然后我看到两个选项:

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

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

也许有第三种方式,我没有看到,它没有不便。有谁能告诉我这些剂量有没有更正确的形式?

使用前向声明:

class C;

我不太明白你的问题。

没有问题
class C;
class A
{
    void foo( C& c );
};
有一个问题与您的C,然而。类C不能包含一个std::vector<C>,因为std::vector需要它实例化类型为complete, C仅为complete