zoukankan      html  css  js  c++  java
  • C++的一些编程规范(基于google)

    1.所有头文件都应该使用#define 防止头文件被多重包含,命名格式可以参考<PROJECT>_<PATH>_<FILE>_H

    2.使用前置声明尽量减少.h文件中#include的数量,导致不必要的重新编译

       详解:http://blog.csdn.net/justkong/article/details/9388733

    3.函数参数:输入参数在前,输出参数在后。输入参数一般传值或常数引用,输出参数或输入输出参数为非常数指针。

    4. .cpp头文件包含顺序

      同名头文件

      C系统文件

      C++系统文件

      其它库头文件

      本项目内其它头文件

    5.命名空间

      (1)分为有名和无名的命名空间

      (2)不能在命名空间的定义中声明子命名空间,不能在命名空间外使用"命名空间::子命名空间{}"的形式为子命名空间添加新成员。

                a. namespace A

                   {

                           namespace B; //error

                    }

                 b. namespaceA{}

                     A::B{}; //error

                     namespaceA{

                     namespace B{} //right

                     }

       (3)using指令和using声明

                 using指令:using namespace A;  //整个命名空间中的所有成员都可直接使用

                 using声明:using A::成员名  //只声明特定的成员

        (4)一般来说,使用using声明会更安全。因为,using声明只导入指定的名称,如果该名称与局部名称发生冲突,编译器会报错。而using指令导入整个命名空间中的所有成员的名称,包括那些可能根本用不到的名称,如果其中有名称与局部名称发生冲突,则编译器并不会发出任何警告信息,而只是用局部名去自动覆盖命名空间中的同名成员。特别是命名空间的开放性,使得一个命名空间的成员,可能分散在多个地方,程序员难以准确知道,别人到底为该命名空间添加了哪些名称。

         (5)可以为命名空间定义别名

                   namespace 别名 = 命名空间名;  //方便使用

    6.局部变量

       提倡在尽可能小的作用域中声明变量,离第一次使用越近越好,在声明变量时将其初始化

    7.类中成员声明次序

      (1)public,protected,private

      (2)typedefs和enums

                常量

                构造函数

                析构函数

                成员函数

                数据成员

    8.使用C++的类型转换代替C语言的类型转换

      (1)static_cast:和C风格转换相似可做值的强制转换,或者指针的子类到父类的明确的向上转换

      (2)const_cast:移除const属性

      (3)reinterpret_cast:指针类型和整形,或者其他指针间不安全的转换,仅在你对你所做的一切了然于心时使用

      (4)dynamic_cast:运行时类型检查,指针的父类到子类的转换

      详见http://blog.csdn.net/justkong/article/details/8044662

    9.使用前置自增代替后置自增,后置自增要多一次拷贝

    10.尽可能多的使用const

  • 相关阅读:
    2013.4.15 Particle Swarm Optimization with Skyline Operator for Fast Cloudbased Web Service Composition
    Adaptive service composition in flexible processes
    2013.4.13 DomainSpecific Service Selection for Composite Services
    2013.4.14 Modeling and Algorithms for QoSAware Service Composition in VirtualizationBased Cloud Computing
    2013.5.29 Towards Networkaware Service Composition in the Cloud
    Efficient algorithms for Web services selection with endtoend QoS constraints
    SQL Server中常用的SQL语句
    接口限流自定义注解
    linux服务器生产环境搭建
    MVEL自定义函数重复掉用报错:duplicate function
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3202948.html
Copyright © 2011-2022 走看看