c++编程经验研讨.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C++编程经验总结 C++的优缺点 C++是一门庞大的语言,它既具有数据底层操作的能力(如指针),也有面向对象的高层抽象能力(如类)。 掌握这些特性的人往往会欣赏这种能力,但是初学者则往往觉得无所适从。下面是一些例子: 主要内容 下面从以下三个方面谈谈C++的开发经验 写程序 看程序 调程序 写程序 写程序的一些技巧 对于缺少开发经验的人来说,主要有以下障碍: C++语言特性太多,不能恰当使用 对面向对象思维方式不熟悉,无法设计复杂的程序 无法发挥性能优势 针对这些问题,以下从几个方面谈谈解决办法 养成良好的编程习惯 学会面向对象的思维 提高性能的简单技巧 良好的编程习惯 C++语言特性太多,初学者往往会掉进一些陷阱中。 解决的办法是:通过良好的编程习惯,减少出错机会,减轻记忆负担。具体有以下几点: 熟练使用IDE 合理命名 代码分段、对齐 对容易错的地方加上详细注释 把数据打包 有规律地使用指针 Visual C++快捷键 推荐安装VC插件Visual Assist X(VA) VC、VA一些常用快捷键 Alt+G :跳到符号的定义、声明 Alt+Shift+F:查找符号的所有出现位置,在看代码、调试是经常用到 Ctrl+减号:跳到光标前一个位置 Ctrl+Shift+减号:跳到光标后一个位置 Ctrl+F:查找 Ctrl+H:替换,快速生成大量结构相似的代码时(例如xyz、rgb)常用 调用堆栈 下层是调用者,上层是被调用者 可以双击跳到任意调用层次 去除冗余信息 监视窗口 任意输入变量名 红色值表示新改变的内容 查看数组、Eigen矩阵、向量完整内容:变量名,长度 可以直接修改变量的值 更多技巧见这里/fjclc2008/article/details/6436434 控制代码的执行 跳过或重复执行某些代码,直接拖动黄色箭头 运行时修改代码 管理代码文件 VS文件夹(筛选器) 命名 命名要遵循某些习惯。 类成员变量以前缀m_开头,静态变量以s_开头,全局变量以g_开头 类名各个单词首字母大写,其余小写 函数名各个单词首字母大写,其余小写,第一个单词首字母小写;或者所有字母小写,用_隔开各个单词 指针以p开头,如pVtx, pMesh;或Ptr结尾 宏、枚举值所有字母大写,用_隔开 变量命名 变量命名含义要明确 以下是一些规则,实际命名时可以灵活运用 函数命名 函数命名应该透露出函数的功能。 常数命名 对于经常使用的常数,可以定义成宏 有特殊含义的,或需要保持前后一致的,定义成宏 表示多种类型、状态的,定义成枚举类型 函数命名 不会修改的参数,加const,这样可以给用户暗示函数的输入与输出,如:void array2Mat(const float* array, Matrix mat); 不修改类对象的函数,定义为常成员函数,如 float getTime()const; 有可能失败的计算过程,返回一个bool,true代表成功,false代表失败。如: bool computePos(); 若某些参数难以调节或不需要调节,可以提供默认参数,如 void compute(float size = 1.f); 若可以生成一些结果,也可以不生成,提供默认为NULL的指针参数,如:void compute(double val, Vector* grad = NULL); 这也是少数的必须用指针的场合。 能用指针也能用引用的时候,用引用,如:void pca(const Mat data, Mat axis); 对指针修改时,用指针的引用,如: void allocate(float * buffer); 代码分段 先写公有成员、再写保护和私有成员 同类访问类型的,先写函数、再写变量 把功能相近的函数、变量写在一起;不同的隔一行,适当注释 代码分段 代码对齐 结构相近的代码,考虑对齐 头文件的函数、变量声明对齐 多个if条件对齐 对齐的好处: 容易看出错误 几句代码相近时,可以复制+替换(善用Ctrl+H) 注释 每个分段开头有注释 对于容易误解的变量,加注释。例如:字符串长度?长度+1?顶点数?顶点数x3?行优先?列优先? 返回值有歧义,注释。例如:0是正常?1是正常? 涉及复制、内存分配、或可能被误解为涉及的,注释 函数、参数意义容易忘记或误解的,对输入有要求的,注释 涉及特别的、难懂的算法,注释 打包数据 某几个数据经常需要整体读写,打包成结构或类。这样不容易漏掉,且容易增删数据 数据有内部复杂结构的,用typedef或先打包成结构 类内部反复利用一些数据结构,定义成内部结构或内部类 要进行复杂的索引计算的,或访问代码很长的,用引用、指针 打包代码 某些简单代码块经常要插入,打包成宏 某些工具函数(例如

文档评论(0)

4477769 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档