`
eyeshot
  • 浏览: 1197 次
文章分类
社区版块
存档分类
最新评论

c++ 学习点

阅读更多
1、C++基础与编程规范

      规范:

       1.2  在每个类声明之后、每个函数定义结束之后都要加空行

   void Function1()

   {

      

   }



   void Function2()

   {



   }

  1.3 

   一行代码只做一件事情,如只定义一个变量,或只写一条语句

   if、for、while、do 等语句自占一行,执行语句不得紧跟其后

   在定义变量的同时初始化该变量

   赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符

   程序的分界符‘{’和‘}’应独占一行并且位于同一列

       void Func1(int x, int y, int z); // 良好的风格

  {

   

  }

   void Func1 (int x,int y,int z); // 不良的风格{

   }



    应当将修饰符 * 和 & 紧靠变量名

    int *x, y;

    // 此处 y 不会被误解为指针

   块的注释常采用“/*...*/”

       行注释 一般采用“//...”

    类名和函数名用大写字母开头的单词组合而成。

变量的名字应当使用“名词”或者“形容词+名词”
变量和参数用小写字母开头的单词组合而成
常量全用大写的字母,用下划线分割单词
静态变量加前缀 s_(表示 static)
        float oldValue;
        float newValue;
       1.1、头文件的结构

    1.1.1 为了防止头文件被重复引用,应当用 ifndef/define/endif 结构产生预处 理块。

     1.1.2  #include <filename.h> 格式来引用标准库的头文件

     1.1.3  用 #include “filename.h” 格式来引用非标准库的头文件

    1.2 if(flag) //表示flag为真   if (!flag) // 表示 flag 为假

               if (flag == TRUE) if (flag == 1 ) //不良的

    1.3 浮点变量与零值比较

         不可将浮点变量用“==”或“!=”与任何数字比较。

         if ((x>=-EPSINON) && (x<=EPSINON))

      其中 EPSINON 是允许的误差(即精度)。0.00000001

    1.4 指针变量与零值比较

    if (p == NULL)  if (p != NULL)

    1.5 const 与 #define 的比较

     const 的作用:只读  三种方式

    const常量有数据类型,而宏常量没有数据类型



  1.5 函数三种传递参数的方式

     指针  引用  值传递

 

2  内存管理

   内存分配的三种方式

   静态存储区域分配 : 全局变量,static 变量

   在栈上创建: 函数内局部变量的存储单元都可以在栈上创建,函
                 数执行结束时这些存储单元自动被释放

   堆上分配,亦称动态内存分配  malloc/free  new/delete  自已释放

   内存常见错误

   内存分配未成功,却使用了它,应该用 if(p != null)

  内存分配虽然成功,但是尚未初始化就引用它

  内存分配成功并且已经初始化,但操作越过了内存的边界 //类似数组

    忘记了释放内存,造成内存泄露  //malloc/free  new/delete  必须成对出现

    释放了内存却继续使用它 //1 return 语句  2  没有将指针设置为 NULL

   void getMemory(char *p)

{

    p = (char *) malloc(100);

}

void test()

{

   char *str = NULL;

   getMemory(str);

  strcpy(str, "hello");

}

char *getMemory()

{

   char *p = (char *) malloc(100);

   return p;

}

野指针

“野指针”不是 NULL 指针,是指向“垃圾”内存的指针

  1.指针变量没有被初始化

  2.指针 p 被 free 或者 delete 之后,没有置为 NULL,让人误以为 p 是个合法的指针

3  c++支持函数重载  重写



4.

A(void);  // 缺省的无参数构造函数
A(const A &a);  // 缺省的拷贝构造函数
~A(void);   // 缺省的析构函数
A & operate =(const A &a);// 缺省的赋值函数

构造函数与析构函数的调用顺序

拷贝构造函数与赋值函数  如果用默认的, 当类中有指针变量的时候,会出现问题

可以把这两个函数设置成private



类的继承与组合

继承 是is a 的关系

组合 是has a 的关系



建议

使用 const 提高函数的健壮性

用 const 修饰函数的参数

用 const 修饰函数的返回值















  



















  







  
分享到:
评论

相关推荐

    c++学习笔记精华版

    ### C++ 学习笔记精华版 #### 一、C++ 语言概述 **1、历史背景** - **C++ 的江湖地位** - Java、C、C++、Python、C# 是当前主流的编程语言之一,而 C++ 在这些语言中以其高效性和灵活性著称。 - **C++ 之父 ...

    c++ 学习经验 交流c++学习经验

    c++学习的经验 交流c++学习经验 首先要说明的是,C和C++是两件截然不同的东西,学习C++可以完全没有C的基础,或者说可以完全不用先学C;但是,这样你是永远也不可能成为真正的C++大师的;你最多只能成为一个C++的...

    C++ 初级学习书籍

    想学c++的朋友可以看看,学习基础知识.《C++ Primer 中文版(第5版)》所有示例均全部采用 C++11 标准改写,这在经典升级版中极其罕见——充分体现了 C++ 语言的重大进展及其全面实践。书中丰富的教学辅助内容、醒目的...

    c++学习源代码

    在这个名为“c++学习源代码”的压缩包中,我们可以找到与C++学习密切相关的源代码,特别是关于数据结构的部分。数据结构是计算机科学的基础,它研究如何在内存中有效地组织和存储数据,以便于快速访问和操作。在C++...

    C++ 学习笔记 整理

    这份"C++学习笔记"涵盖了C++的基础到高级概念,旨在帮助初学者和有一定经验的程序员深入理解并掌握C++。 在C++的学习过程中,以下几个关键知识点是不可或缺的: 1. **基础语法**:C++起源于C语言,因此它保留了...

    Visual C++ 2010学习版.zip

    在这个过程中,理解C++的基础语法、面向对象编程的概念、异常处理以及标准库的使用,都是非常重要的知识点。同时,不断实践和调试代码,提升解决问题的能力,也是成为一个熟练C++程序员的必经之路。

    c++学习资源,全面学习软件开发

    本资源包是针对C++学习者精心整理的一套全面的学习资料,旨在帮助初学者和进阶者深入理解和掌握C++。 在C++的学习过程中,以下几个核心知识点至关重要: 1. **基础语法**:C++起源于C语言,因此,熟悉C语言的基本...

    C++核心学习笔记pdf

    C++核心学习笔记pdf

    C++学习资料.zip

    本压缩包“C++学习资料.zip”是专为高校学生和C++初学者准备的学习资源,涵盖了C++的基础知识、进阶技巧以及实际项目应用。 首先,我们来看“练习.docx”。这个文档通常包含了C++的基础语法练习题,可能涵盖变量、...

    C++学习文档 高清PDF

    这篇文档集合提供了全面的C++学习资源,包括高清PDF格式的教程,对于初学者和进阶者都是宝贵的资料。 1. **C++基础知识**:C++是C语言的扩展,它引入了类、模板、异常处理等面向对象编程概念。学习C++首先要掌握...

    C++学习实例,非常好的学习C++的小例子

    "C++学习实例"这个压缩包文件正是为初学者提供了一系列精心设计的练习,旨在帮助他们逐步理解并熟练运用C++。 首先,我们要了解C++的基本概念。C++是C语言的增强版,引入了面向对象编程(OOP)的概念,包括类、对象...

    C++学习源码_C++_c++源码网_Linux/Unix编程_

    通过上述知识点的学习,结合提供的"C++学习源码",开发者可以逐步精通C++在Linux/Unix环境下的编程实践,从而提升自己的编程能力。在实际项目中,这些知识将帮助开发者编写出高效、稳定且易于维护的软件。

    C++学习安卓版

    C++学习是Android客户端目前最全面的免费离线C++学习书籍,提高C++二级考试成绩、增强C++自学能力,内容包括: 1、C++数据类型、控制语句、循环、数组等基础 2、C++逻辑算法练习题 3、C++函数、指针 4、C++内存...

    学习心得--C++学习经典

    从给定的文件信息中,我们可以提炼出一系列与C++学习相关的知识点,这些知识点涵盖了学习方法、资源推荐、编程实践以及个人发展等多个方面。以下是对这些知识点的详细解读: 1. **C++作为一门基础语言的重要性**:...

    C++学习教程

    C++学习教程C++学习教程C++学习教程C++学习教程C++学习教程

    C++知识点 XMind思维导图

    C++知识点 XMind思维导图

    Visual C++学习资料

    ### Visual C++ 学习资料知识点详解 #### 一、Visual C++ 概述 - **定义**:Visual ...以上就是根据题目要求整理的关于“Visual C++学习资料”的详细知识点,希望能对正在学习或准备学习Visual C++的朋友有所帮助。

    50条重要的C++学习建议(绝对值得一读)

    C++学习建议 itle:50条重要的C++学习建议(绝对值得一读) 描述:50条重要的C++学习建议(绝对值得一读),给你详细的建议与指导,定有收获 标签:50条重要的C++学习建议 部分内容: 1.把 C++当成一门新的语言...

Global site tag (gtag.js) - Google Analytics