1.定义结构体和类时,最后都要加上";".

2.C++中结构体中可以有函数.而C语言中是不可以的.

3.构造函数(与类同名)与析构函数没有返回值.
  构造函数
    <1>构造函数最重要的作用是创建对象本身 。
    <2>C++规定,每个类必须有一个构造函数,没有构造函数,就不能创建任何对象。
    <3>C++又规定,如果一个类没有提供任何的构造函数,则C++提供一个默认的构造
       函数(由C++编译器提供),这个默认的构造函数是一个不带参数的构造函数,
       它只负责创建对象,而不做任何的初始化工作。 
    <4>只要一个类定义了一个构造函数,不管这个构造函数是否是带参数的构造函数,
       C++就不再提供默认的构造函数。也就是说,如果为一个类定义了一个带参数的
       构造函数,还想要无参数的构造函数,则必须自己定义。
       
 析构函数 
    <1>当一个对象生命周期结束时,其所占有的内存空间就要被回收,这个工作就由
       析构函数来完成。 
    <2>析构函数是“反向”的构造函数,析构函数不允许有返回值,更重要的是析构函
       数不允许带参数,并且一个类中只能有一个析构函数。 
    <3>析构函数的作用正好与构造函数相反,对象超出其作用范围,对应的内存空间
       被系统收回或被程序用delete删除时,析构函数被调用。 
    <4>根据析构函数的这种特点,我们可以在构造函数中初始化对象的某些成员变量,
       给其分配内存空间(堆内存),在析构函数中释放对象运行期间所申请的资源。

4.函数的重载 
   重载构成的条件:函数的参数类型、参数个数不同,才能构成函数的重载。

5.this指针 
   <1>this指针是一个隐含的指针,它是指向对象本身,代表了对象的地址 
   <2>一个类所有的对象调用的成员函数都是同一代码段。那么成员函数又是怎么识别
      属于同一对象的数据成员呢?原来,在对象调用pt.output(10,10)时,成员函数
      除了接受2个实参外,还接受到了一个对象s的地址。这个地址被一个隐含的形参
      this指针所获取,它等同于执行this=&pt。所有对数据成员的访问都隐含地被加
      上前缀this->。例如:x=0; 等价于 this->x=0。
6.类的继承   
   在C++中,给我们提供了一种重要的机制,就是继承。 理解继承是理解面向对象程序
   设计的关键。
   protected方法在类的外部不可以访问,但是在子类的内部是可以访问的

7.类的继承访问特性 
----------------------------------------------------------------
基类的访问特性      类的继承特性    子类的访问特性
Public                               Public
Protected            Public          Protected
Private                       No access               
----------------------------------------------------------------
Public                               Protected
Protected            Protected       Protected
Private                       No access
-----------------------------------------------------------------
Public                               Private
Protected            Private         Private
Private                       No access
-----------------------------------------------------------------

8.构造子类时,首先构造父类.
  析构子类时,首先析构子类,然后析构父类.

9.当父类的构造函数带有参数时,构造子类时,需要在子类的构造函数中向父类的构造函数
  传递参数.
  比如:
      Fish():Animal(300,400),a(1)
      {
            ...................;
      private:
 const int a;
      }
  初始化成员列表,可以初始化常量成员数据.

10.函数的覆盖
   函数的覆盖是发生在父类与子类之间的。 
   Animal::Breathe();           //在子类中可以以这种方式调用基类的方法

11.多态性 
   当C++编译器在编译的时候,发现Animal类的breathe()函数是虚函数,这个时候C++就会
   采用迟绑定(late binding)的技术,在运行时,依据对象的类型(在程序中,我们传递
   的Fish类对象的地址)来确认调用的哪一个函数,这种能力就做C++的多态性。

12.含有纯虚函数的类,成为一个抽象类,抽象类不能用来实例化一个对象,只能用来继承
   如果子类没有实现这个纯虚函数,那么子类也是一个抽象类,不能用来实例化一个对象

13.引用类型必须在定义的时候初始化.维系一个对象.

14.在cpp文件中实现vritual函数时,前面不要再写vritual.

15.使用预编译指令符可以防止头文件被重复包含.

16.头文件不参与编译.源文件单独编译.

孙鑫VC学习笔记:第二讲 掌握C++相关推荐

  1. 孙鑫VC++学习笔记(转载至程序员之家--虎非龙)[11--15] .

    第11课 1.创建4个菜单,为其添加消息响应,用成员变量保存绘画类型.添加LButtonDown和Up消息. 2.当窗口重绘时,如果想再显示原先画的数据,则需要保存数据.为此创建一个新类来记录绘画类型 ...

  2. 孙鑫VC++学习笔记(转载至程序员之家--虎非龙)[11--15]

    第11课 1.创建4个菜单,为其添加消息响应,用成员变量保存绘画类型.添加LButtonDown和Up消息. 2.当窗口重绘时,如果想再显示原先画的数据,则需要保存数据.为此创建一个新类来记录绘画类型 ...

  3. 孙鑫VC学习笔记:第七讲

    七.对话框 2006年8月5日 14:25 因为笔记是用OneNote做的,上传以后为看不到图片,于是我截图放到相册上面, 相册地址为:http://photo.163.com/photos/good ...

  4. 视觉SLAM十四讲学习笔记-第二讲-开发环境搭建

    专栏系列文章如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 ​​​​​​​ lin ...

  5. Adams学习笔记 第二讲 Adams入门示例

    Adams学习笔记 第二讲 Adams入门示例 Falling Stone石头坠落 问题描述 使用步骤 结论与分析 软件环境:Adams2018(官方文档使用的开发环境为2013.2) 声明:本讲内容 ...

  6. 视觉SLAM十四讲学习笔记-第二讲-初识SLAM

    专栏系列文章如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 "定位"和"建图",可以看成感知的"内外之分". ...

  7. 惯性导航系统学习笔记——第二讲

    第二讲 地球形状和曲率半径 本文为学习朱家海教授<惯性导航系统>一课所做的课堂笔记,文中PPT为朱教授课程所用. 一.地球几何形状 1.大地水准面:以海平面为基准,向大陆延伸而形成的封闭曲 ...

  8. 孙鑫VC学习系列教程

    教程简介 1.循序渐进 从Win32SDK编程开始讲解,帮助大家理解掌握Windows编程的核心 -- 消息循环机制. 2.通俗易懂 编程语言枯燥难懂,然而通过孙鑫老师形象化的讲解,Windows和M ...

  9. 【视觉SLAM十四讲】学习笔记-第二讲

    其他章节:     第二讲:初识SLAM 初识SLAM SLAM(Simultaneous Localization and Mapping),同时定位与地图构建.它是指搭载特定传感器主体,在没有环境 ...

  10. Apollo星火计划学习笔记第二讲——自动驾驶调试及仿真实践

    Apollo学习笔记 零.目录 一.自动驾驶的开发流程 1.1 引言 二.Apollo调试工具的使用 2.1 实验内容 2.2 实验流程 三.Apollo仿真工具的使用 3.1 实验内容 3.2 实验 ...

最新文章

  1. 解决端口 windows10 端口被占用的问题
  2. 第十六届全国大学生智能汽车竞赛总决赛 AI视觉组线上赛图片显示软件发布及线上赛注意事项
  3. CentOS7用yum安装软件报:Cannot find a valid baseurl for repo: base/7/x86_64
  4. data 谷歌浏览器更改user 路径_chrome浏览器的跨域设置——包括版本49前后两种设置...
  5. 相对定位android,appium相对位置定位元素----父节点/兄弟节点定位
  6. Innumerable Ancestors 尺取 dfs序 lca
  7. RocketMQ环境搭建
  8. 如何为MySQL选择更合适的数据类型
  9. 保姆级教学:缓存穿透、缓存击穿和缓存雪崩!
  10. python安装要什么配置_Python的安装和详细配置
  11. Linux3种进程,linux内核获取进程的全路径3种方法
  12. 使用OGR创建弧形图形
  13. python学习笔记——守护进程
  14. 哈夫曼树以及哈夫曼编码python
  15. matlab面源模式反扩散参数研究,基于GIS的大气点源污染高斯烟羽扩散模拟研究
  16. 招商银行校招笔试通过技巧
  17. 【Word文稿】在Word中优雅地插入VScode颜色主题代码(高亮、背景、颜色、字体均完美)
  18. Good Bye 2018 ABCD题解
  19. 【附源码】计算机毕业设计java在线课堂管理平台设计与实现
  20. 字节跳动-后端开发岗最新春招面经分享,四面拿下,有惊无险

热门文章

  1. 未能加载文件或程序集“Newtonsoft.Json”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)...
  2. CentOS6.5 调整 /home 挂载 分区大小
  3. 项目经理的五大核心技能
  4. 史上最全的phpstorm常用配置
  5. sudo chown -R nobody:nogroup clear
  6. 启动Tomcat时报错,一大堆的
  7. oracle中with子句的用法(转)
  8. 【11月29】PF 粒子滤波的多维运动模型代码
  9. pytorch中hook的使用
  10. java数组基本用法(数组的声明/初始化及一些常用的数组操作)