大家好.我最近开始了一份新工作,我应该使用C++ /我已经用C语言编程了近5年.我正在寻找让我达到OOP可接受水平的方法.我有C++和OOP的所有基本概念,但没有太多的实际类设计经验.我真正想要的是学习类库设计的方法,因为我将在一个为其他程序员编写C++库的团队中工作.请建议像"责任分配"这样的原则,它可以帮助我设计一般的课程.
对Bob Martin SOLID原则表示不满:
S RP单一责任原则:一个班级应该只有一个改变的理由.
O CP开放封闭原则:您应该能够扩展类行为,而无需对其进行修改.
L SP Liskov替换原则:派生类必须可替代其基类.
I SP接口隔离原则:创建客户特定的细粒度接口.
D IP依赖性倒置原则:取决于抽象,而不是结构.
我知道这不是你一直在寻找的答案类型; 它更像是其他答案的延伸(已经完成但尚未完成).我以为我会添加一些通用的东西......
每个.hpp文件写一个类声明,每个.cpp文件一个类定义.命名文件,如它们包含的类.(找到多少代码没有得到这个基本规则,这是令人惊讶和令人沮丧的.)
请注意,C++是一种多范式语言.没有类层次结构,有些事情可以更好地解决.(有些东西需要模板,有些东西最好以旧的程序风格完成.)
了解Boost库以及它们如何执行操作.它们很好地展示了做得好的C++,特别是在用户界面方面.它们对你的日常工作也很有用.
阅读Scott Meyers的"Effective C++","More Effective C++"和"Effective STL".如果有疑问,只需获得第一个,你就会发现为什么你应该自己阅读另外两个.
无法抗拒给出这些基础知识,看到一个新的语言实际上要求建议,然后陷入许多坏习惯.;-)
这里有很多关于SO的帖子,例如:
学习C++的最佳来源是什么?
一本好的C++书
一般来说,Scott Meyers的书籍是一个很好的起点.
Andrei Alexandrescu的书也非常好.