文档介绍:C++编程技术基础培训北京神州数码思特奇信息技术股份有限公司研究院课程目标本课程帮助学员对C++语言编程技术的基本语法概念、内存管理、模板库、线程编程、数据库访问技术等方面进行培训与指导,并结合实际应用项目达到认识和掌握各种编程知识的目的。让学员掌握C++技术编程思想、方法和解决实际问题的技巧。本课程把概念、知识点与案例相结合,进行案例教学。课程目标课程安排第一部分:C++语言概述第二部分:类与对象第三部分:继承与派生第四部分:运算符重载与命名空间第五部分:IO流类库第六部分:C++的内存格局第七部分:STL标准模板库第八部分:C++多线程编程与网络通讯基础第九部分:数据库访问技术——项目片段分析一、C++语言概述C++语言优势程序的版式命名规则表达式和基本语句编写规则函数编写规则程序结构编译环境介绍C++语言的优势总的来说,C++语言具有4个方面的优点。(1)降低程序开发和维护的成本。(2)比用C语言编写的程序更加有效率。(3)C++允许程序员更自由地使用各种库。(4)C++的异常处理机制能够保证在运行期间检查到错误,并转至相应的处理程序,减少了代码的长度和复杂度。,正确使用include,ifndef/define/,代码行代码行内的空格对齐修饰符*&的位置注释类的版式:public,private前后之争命名规则不要最求世界上最好的命名规则!在机构内部一致即可。匈牙利法的利弊。一些共性规则:直观并且可以拼读,可望文知意,不必“解码”。名字的长度:min-length&&max-information原则与操作系统和开发工具的风格保持一致程序中不要出现仅靠大小写区分的相似的标识符程序中不要出现标识符完全相同的局部变量和全局变量变量的名字应当使用“名词”或者“形容词+名词”全局函数的名字应当使用“动词”或者“动词+名词”(动宾词组)。类的成员函数应当只使用“动词”,被省略掉的名词就是对象本身。用正确的反义词组命名具有互斥意义的变量或相反动作的函数等尽量避免名字中出现数字编号,如Value1,Value2等,除非逻辑上的确需要编号表达式和基本语句1表达式如果代码行中的运算符比较多,用括号确定表达式的操作顺序,避免使用默认的优先级。不要编写太复杂的复合表达式。不要把程序中的复合表达式与“真正的数学表达式”混淆。例如if(a<b<c)2你会编写正确的if语句吗布尔变量与零值比较整型变量与零值比较浮点变量与零值比较指针变量与零值比较为什么有人用If(NULL==P)这样“古怪”的格式3循环语句在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨切循环层的次数。如果循环体内存在逻辑判断,并且循环次数很大,宜将逻辑判断移到循环体的外面。建议for语句的循环控制变量的取值采用“半开半闭区间”写法。4switch,goto…函数设计1参数的规则参数的书写要完整,不要贪图省事只写参数的类型而省略参数名字。参数命名要恰当,顺序要合理。示例StringCopy(char*str1,char*str2)如果参数是指针,且仅做输入用,则应在类型前加const,以防止该指针在函数体内被意外修改。避免函数有太多的参数,参数个数尽量控制在5个以内。如果参数太多,在使用时容易将参数类型或顺序搞错。尽量不要使用类型和数目不确定的参数。例如printf2返回值的规则不要省略返回值的类型。函数名字与返回值类型在语义上不可冲突。例如getchar不要将正常值和错误标志混在一起返回。正常值用输出参数获得,而错误标志用return语句返回。有时候函数原本不需要返回值,但为了增加灵活性如支持链式表达,可以附加返回值。例如char*strcpy(char*strDest,constchar*strSrc);3函数内部实现的规则:在函数体的“入口处”和“出口处”从严把关在函数体的“入口处”,对参数的有效性进行检查。在函数体的“出口处”,对return语句的正确性和效率进行检查。4一些建议函数的功能要单一,不要设计多用途的函数。函数体的规模要小,尽量控制在50行代码之内。尽量避免函数带有“记忆”功能。相同的输入应当产生相同的输出。带有“记忆”功能的函数,其行为可能是不可预测的,因为它的行为可能取决于某种“记忆状态”。不仅要检查输入参数的有效性,还要检查通过其他途径进入函数体内的变量的有效性,例如全局变量、文件句柄等。用于出错处理的返回值一定要清楚,让使用者不容易忽视或误解错误情况。5使用断言使用断言捕捉不应该发生的非法情况。不要混淆非法情况与错误情况之间的区别,后者是必然存在的并且是一定要做出处理的。在函数的入口处,使用断言检查参数的有效性(