strchr函数用法_c++ strchr函数_strchr函数原型(9)

电脑杂谈  发布时间:2017-02-28 18:06:59  来源:网络整理

一般在头文件中把存取函数定义成内联函数.

声明顺序:在类中使用特定的声明顺序:public:在private:之前,成员函数在数据成员(变量)前。

类的访问控制区段的声明顺序依次为:public:,protected:,private:.如果某区段没内容,可以不声明.

每个区段内的声明通常按以下顺序:

(1)、typedefs和枚举;

(2)、常量;

(3)、构造函数;

(4)、析构函数;

(5)、成员函数,含静态成员函数;

(6)、数据成员,含静态数据成员

宏DISALLOW_COPY_AND_ASSIGN的调用放在private:区段的末尾.它通常是类的最后部分.

.cc文件中函数的定义应尽可能和声明顺序一致.

不要在类定义中内型函数.通常,只有那些没有特别意义或性能要求高,并且是比较短小的函数才能被定义为内联函数.

编写简短函数:倾向编写简短,凝练的函数.

我们承认长函数有时是合理的,因此并不硬性限制函数的长度.如果函数超过40行,可以思索一下能不能在不影响程序结构的前提下对其进行分割.

即使一个长函数现在工作的非常好,一旦有人对其修改,有可能出现新的问题.甚至导致难以发现的bug.使函数尽量简短,便于他人阅读和修改代码.

在处理代码时,你可能会发现复杂的长函数.不要害怕修改现有代码:如果证实这些代码使用/调试困难,或者你需要使用其中的一小段代码,考虑将其分割为更加简短并易于管理的若干函数.

译者(YuleFox)笔记:

(1)、不在构造函数中做太多逻辑相关的初始化;

(2)、编译器提供的默认构造函数不会对变量进行初始化,如果定义了其他构造函数,编译器不再提供,需要编码者自行提供默认构造函数;

(3)、为避免隐式转换,需将单参数构造函数声明为explicit;

(4)、为避免拷贝构造函数,赋值操作的滥用和编译器自动生成,可将其声明为private且无需实现;

(5)、仅在作为数据集合时使用struct;

(6)、组合>实现继承>接口继承>私有继承,子类重载的虚函数也要声明virtual关键字,虽然编译器允许不这样做;

strchr函数用法_strchr函数原型_c++ strchr函数

(7)、避免使用多重继承,使用时,除一个基类含有实现外,其他基类均为纯接口;

(8)、接口类类名以Intece为后缀,除提供带实现的虚析构函数,静态成员函数外,其他均为纯虚函数,不定义非静态数据成员,不提供构造函数,提供的话,声明为protected;

(9)、为降低复杂性,尽量不重载操作符,模板,标准类中使用时提供文档说明;

(10)、存取函数一般内联在头文件中;

(11)、声明次序:public->protected->private;

(12)、函数体尽量短小,紧凑,功能单一.

4.来自Google的齐技:

Google用了很多自己实现的技巧/工具使C++代码更加健壮,我们使用C++的方式可能和你在其它地方见到的有所不同.

智能指针:如果确实需要使用智能指针的话,scoped_ptr完全可以胜任.你应该只在非常特定的情况下使用std::tr1::shared_ptr,例如STL容器中的对象.任何情况下都不要使用auto_ptr.

“智能”指针看上去是指针,其实是附加了语义的对象.以scoped_ptr为例,scoped_ptr被销毁时,它会删除所指向的对象.shared_ptr也是如此,并且shared_ptr实现了引用计数,所以最后一个shared_ptr对象析构时,如果检测到引用次数为0,就会销毁所指向的对象.

一般来说,我们倾向于设计对象隶属明确的代码,最明确的对象隶属是根本不使用指针,直接将对象作为一个作用域或局部变量使用.另一种极端做法是,引用计数指针不属于任何对象.这种方法的问题是容易导致循环引用,或者导致某个对象无法删除的诡异状态,而且在每一次拷贝或赋值时连原子操作都会很慢.


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-35033-9.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 王淑娜
      王淑娜

      期待你带给我们更多更好的作品

    • 松风雅也
      松风雅也

      中国可能采用撞击的方式回击一下

    • 韦洪
      韦洪

      改变不了了

    热点图片
    拼命载入中...