C++编程规范之32:弄清楚要编写的是哪种类

简介:

摘要:

了解自我:有很多种不同的类。弄清楚要编写的是哪一种。

    不同种类的类适用于不同用途,因此遵循着不同的规则。值类模仿的是内置类型。一个值类应该:

    1.有一个公用析构函数、复制构造函数和带有值语义的赋值。

    2.没有虚拟函数(包括析构函数)。

    3.是用作具体类,而不是基类。

    4.总是在栈中实例化,或者作为另一个类直接包含的成员实例化。

    基类是类层次结构的构成要素。一个基类应该:

    1.有一个公用而且虚拟,或者保护而且非虚拟的析构函数,和一个非公用复制构造函数和复制操作符。

    2.通过虚拟函数建立接口。

    3.总是动态地在堆中实例化为具体派生类对象,并通过一个智能指针来使用。

    不严格地来说,traits类是携带有关类型信息的模版。一个traits类应该:

    1.只包含typedef和静态函数,没有可修改的状态或者虚拟函数。

    2.通常不独立实例化,只作为基类或者成员。

    异常类提供了不寻常的值与引用语义的混合:它们通过值抛出,但应该通过引用捕获。一个异常类应该:

    1.有一个公用析构函数和不会失败的构造函数。

    2.有虚拟函数,经常实现克隆和访问。

    3.从std::exception虚拟派生更好。

相关文章
|
4天前
|
自然语言处理 算法 Java
C/C++ 程序员编程规范之注释
C/C++ 程序员编程规范之注释
48 1
|
4天前
|
存储 算法 测试技术
|
4天前
|
程序员 编译器 C++
|
4天前
|
程序员 开发工具 C++
C/C++ 程序员编程规范之排版
C/C++ 程序员编程规范之排版
35 1
|
9月前
|
编译器 C++
【C++】实用编程规范与建议
C++ 相关,比较实用的 防止疏漏出错的编码规范与编码建议
121 0
|
10月前
|
存储 设计模式 算法
03-📝C++核心语法|面向对象1【 C++编程规范、类和对象、面向对象程序设计案例、对象的构造和析构、C++面向对象模型初探】
复习`C++核心语法`,且适当进行汇编探索底层实现原理,进一步夯实基础,为以后的`底层开发`、`音视频开发`、`跨平台开发`、`算法`等方向的进一步学习埋下伏笔。
03-📝C++核心语法|面向对象1【 C++编程规范、类和对象、面向对象程序设计案例、对象的构造和析构、C++面向对象模型初探】
|
程序员 C++ C语言
《C++编程规范:101条规则、准则与最佳实践》——导读
许多糟糕的编程规范都是由一些没有很好地理解语言、没有很好地理解软件开发或者试图标准化过多东西的人制定的。糟糕的编程规范会很快丧失可信度,如果程序员不喜欢或者不同意其中一些糟糕的准则,那么即使规范中有一些合理的准则,也可能被不抱幻想的程序员所忽略,这还是最好的情况,最坏的情况下,糟糕的标准可能真会被强
1788 0