zoukankan      html  css  js  c++  java
  • 第三章:PCL基础3.1

    架构师为了确保在PCL中所有代码风格的一致性,使得其他开发者及用户容易理解源码,PCL开发者制定并遵循着一套严格的编写规范,PCL的开发者都默认此规范。

    3.1PCL推荐的命名规范

    1、文件命名

    1)所有的文件名单词之间应该用下划线隔开,如:unordered_map.cpp

    2)头文件的扩展名为.h

    3)模板类实现文件的扩展名是.hpp

    4)源文件的扩展名是.cpp

    2、目录命名

    所有的目录及其子目录命名应该符合,如果由多个单词组成,其之间用下划线隔开,PCL中各个目录遵循以下规则:

    1)头文件都应该放在源码目录树种的include/下。

    2)模板类实现文件都应放在目录树中的include/impl/下。

    3)源文件都应该放在目录树中的src/下。

    3、include语句

    当文件在同一目录下时include指示语句用双引号,在其他情况下则用尖括号。例如:

    #include<pcl/module_name/file_name.h>

    #include<pcl/module_name/impl/file_name.hpp>

    #include"file_name.cpp"//在同一目录下

    4、宏定义命令

    宏定义中字母都采用大写格式,为头文件所定义的宏最后面还需要加上下划线,并且名称从include下目录开始,例如pcl/filters/bilateral.h对应PCL_FILTERS_BILATERAL_H_。#ifndef和#define定义放在BSD协议后面代码前面,#endif定义一直在文件结尾,并且加上一句注释掉的宏对应头文件的宏定义,例如

    //the BSD license

    #ifndef PCL_MODULE_NAME_IMPL_FILE_NAME_HPP_//为避免重复包含头文件而定义的宏

    #define PCL_MODULE_NAME_IMPL_FILE_NAME_HPP_

    //the code

    #endif  //PCL_MODULE_NAME_IMPL_FILE_NAME_HPP_

    5、命名空间命名

    命名空间多于一个单词的,单词之间应该用下划线连接,例如:

    namespace pcl_io

    {

    ...

    }

    6、类/结构命名

    类名(和其他自定义类型的名称)应该是CamelCased(驼峰命名)命名规范,也就是连写单词组成命名,每个单词首字母大写。但是也有例外,如果类名包含一个缩写,这个缩写应该全部大写,类名和结构名最好是名词组成的名字。例如PFHEstimation代替了EstimatePFH,下面是正确的例子:

    class ExampleClass;

    class PFHEstimation;

    7、函数/成员函数命名

    他们的命名应该采用camelCased,也就是连写单词组成命名,除了首个单词字母小写其他单词首字母大写,他们的参数命名单词之间用下划线隔开,函数和类的成员函数命名最好采用动词,应该确保这些名字能清楚表达函数或成员函数的功能,例如:checkForErrors()而不是errorCheck(),dumpDataToFile()而不是dataFiledump();正确的用法:

    int applyExample(int example_arg);

    8、变量命名

    变量的命名应该单词之间用下划线隔开例如:

    int my_variable;

    1)迭代子变量命名。迭代子变量应该反应出他们迭代的对象,例如:

    std::list<int> pid_list;

    std::list<int>::iterator pid_it;//指示迭代的对象为点的索引

    2)常量命名。常量的名字应该是全大写,例如:

    const static int MY_CONSTANT=1000;

    3)成员变量命名。类的成员变量命名单词之间用下划线隔开并且以下划线结尾,例如:

    int example_int_;//对阅读PCL源码很有帮助,可明显区分成员变量和局部变量

    9)Return语句

    return语句需要在圆括号中设有返回值,即规定return语句必须有返回值,大家知道,return没有返回值也会编译,例如:

    int main()

    {

      return(0);

    }

    3.1.2 PCL推荐的缩进与格式

    在PCL中每个代码块的标准缩进是两个空格,在任何情况下可以用制表符或其他空格间隔的方式进行格式化代码,PCL利用多样化的GNU类型格式。

    1、命名空间缩进格式

    在头文件里,命名空间的内容应该缩进两个空格,例如:

    在一个实现文件里,对每一个类成员函数或函数的命名必须添加命名空间限定,例如:

    void pcl::Foo::bar()

    {

    }

    2、类格式

    一个模板类的模板参数必须与类定义在不同行,如:

    template<typename T>

    class Foo

    {

       ...

    }

    3、函数/类成员函数格式

    每一个函数的返回类型声明必须与函数声明放在不同行,例如:

    void

    bar();

    在函数实现的时候也一样,返回类型必须与函数声明放在不同行,例如:

    或者

    或者

    4、花括号

    它必须成对出现,与上一句代码另起一行定义,必须闭合才组成合理的程序块。

    5、空格格式

    如果在头文件内嵌套应用了命名空间名,需要将其缩进两个空格,如:

    类和结构成员采用两个空格进行缩进,访问权限限定(public、private、protected)与类成员一级,而在其限定下的成员则需要缩进两个空格,如

    6、自动格式化代码

    3.1.3设计结构

    1、类和应用程序接口

    2、参数传递

  • 相关阅读:
    idea配置tomcat
    使用svn时出现Can't switch /XXX/XXX because it is not the repository yet
    使用idea断点调试时出现no executable code found at line问题
    python 发送邮件
    python中子类调用父类的方法
    Java源码阅读PriorityQueue
    comparable和comparator
    java源码阅读LinkedBlockingQueue
    java源码阅读ArrayBlockingQueue
    java源码阅读LinkedList
  • 原文地址:https://www.cnblogs.com/gary-guo/p/6579695.html
Copyright © 2011-2022 走看看