孙鑫VC++讲座笔记-(2)C++ (摘自CSDN)

原创 2006年05月31日 14:43:00
1, c语言中,结构体struct中不能包括函数的,而在C++中struct中可以包括函数。
2,C++中结构体和类可以通用,区别主要表现在访问控制方面:struct中默认是public,而 class中默认的是private。
3,构造函数最重要的作用是创建对象的本身,C++中每个类可以拥有多个构造函数,但必须至少有一个构造函数,当一个类中没有显式提供任何构造函数,C++编辑器自动提供一个默认的不带参数的构造函数,这个默认的构造函数只负责构造对象,不做任何初始化工作。但在一个类中只要自己定义一个构造函数,不管带参不带参,编辑器不再提供默认的不带参的构造函数了。构造函数没有返回值。
4,析构函数当一个对象生命周期结束时候被调用来回收对象占用的内存空间。一个类只需有一个析构函数。析构函数没有返回值也不的带参数。
5,析构函数的作用与构造函数相反,对象超出起作用范围对应的内存空间被系统收回,或被程序用delete删除的时候,对象的析构函数被调用。
6,函数的重载条件:函数的参数类型、个数不同,才能构成函数的重载。重载是发生在同一个类中。
7,类是抽象的,不占用具体物理内存,只有对象是实例化的,是占用具体物理内存的。
8,this指针是隐含指针,指向对象本身(this指针不是指向类的),代表了对象的地址。所有的对象调用的成员函数都是同一代码段,但每个对象都有自己的数据成员。当对象通过调用它的成员函数来访问它的数据成员的时候,成员函数除了接收实参外,还接收了对象的地址,这个地址被一个隐藏的形参this所获取,通过这个this指针可以访问对象的数据成员和成员函数。
9,对象中public属性的成员在外部和子类中都可以被访问;protected属性的成员在外部不能被访问,在子类中是可以访问的;private属性在子类中和外部都不能被访问。
10,类的继承访问特性:(public,protected,private)
 a)基类中private属性成员,子类无论采用那种继承方式都不能访问。
 b)采用public继承,基类中的public,protected属性的成员访问特性在子类中仍然保持一致。
 c)采用protected继承,基类中的public,protected属性成员访问特性在子类中变为protected.
 d)采用provate继承,基类中的public,protected属性成员访问特性在子类中变为provate.
11,子类和基类的构造函数或析构函数调用顺序:
 当调用子类的构造函数时候先调用基类的构造函数(如果没有指明,则调用基类却省那个不带参数的构造函数;如果要指明则在子类构造函数名后加":基类名(参数)")。析构函数则相反,先调用子类析构函数,后调用基类的析构函数。
12,函数的覆盖:
 函数的覆盖是发生在发生父类和子类之间的。(函数的重载是发生在同一个类中)
 当子类中重写了父类的某些成员函数后,子类中的成员函数覆盖了父类的对应同名成员函数。
13,用父类指针访问子类对象成员时候,只能访问子类从父类继承来的那部分。(这时候外部不可以访问父类中保护和私有的部分,子类中不可访问父类私有部分。)
14,多态性:在基类的的成员函数前加virturl变成虚函数,当用子类对象调用该功能的成员函数时候,子类有的就调用子类的,子类没有的就调用基类的。
 当C++编译器在编译的时候,发现被调用的成员函数在基类中定义的是虚函数,这个时候C++就会采用迟绑定技术(late binding),在运行的时候,依据对象的类型来确定调用的哪个函数,子类有调用子类的,子类没有的就调用基类的。
 如果基类中的成员函数不是虚函数,则这时候的绑定是早期绑定,在编译的时候就已经确定该调用哪个函数。
15,纯虚函数:在类中定义时 eg: virtual void f1()=0;
 纯虚函数没有函数体,含有纯虚函数的类叫做抽象类,抽象类不能实例化对象。当子类从抽象类的基类中派生出来时候,如果没有实现基类中的纯虚函数,则子类也是个抽象类,也不能实例化对象。
 纯虚函数被标名为不具体实现的虚成员函数,纯虚函数可以让类只具有操作的名称而不具有具体的操作的内容,让派生类在继承的时候再给出具体的定义。如果派生类没有给出基类的纯虚函数的具体定义的时候,派生类也为一个抽象类,也不能实例化对象。
16,引用:变量的别名。引用需要在定义的时候用一变量或对象初始化自己。引用一旦在定义的时候初始化,就维系在一个特定的变量或对象上。
 引用不占用物理内存(与定义引用的目标共用同一内存)。指针变量需要占用物理内存,用来存储地址。
1, c语言中,结构体struct中不能包括函数的,而在C++中struct中可以包括函数。
2,C++中结构体和类可以通用,区别主要表现在访问控制方面:struct中默认是public,而 class中默认的是private。
3,构造函数最重要的作用是创建对象的本身,C++中每个类可以拥有多个构造函数,但必须至少有一个构造函数,当一个类中没有显式提供任何构造函数,C++编辑器自动提供一个默认的不带参数的构造函数,这个默认的构造函数只负责构造对象,不做任何初始化工作。但在一个类中只要自己定义一个构造函数,不管带参不带参,编辑器不再提供默认的不带参的构造函数了。构造函数没有返回值。
4,析构函数当一个对象生命周期结束时候被调用来回收对象占用的内存空间。一个类只需有一个析构函数。析构函数没有返回值也不的带参数。
5,析构函数的作用与构造函数相反,对象超出起作用范围对应的内存空间被系统收回,或被程序用delete删除的时候,对象的析构函数被调用。
6,函数的重载条件:函数的参数类型、个数不同,才能构成函数的重载。重载是发生在同一个类中。
7,类是抽象的,不占用具体物理内存,只有对象是实例化的,是占用具体物理内存的。
8,this指针是隐含指针,指向对象本身(this指针不是指向类的),代表了对象的地址。所有的对象调用的成员函数都是同一代码段,但每个对象都有自己的数据成员。当对象通过调用它的成员函数来访问它的数据成员的时候,成员函数除了接收实参外,还接收了对象的地址,这个地址被一个隐藏的形参this所获取,通过这个this指针可以访问对象的数据成员和成员函数。
9,对象中public属性的成员在外部和子类中都可以被访问;protected属性的成员在外部不能被访问,在子类中是可以访问的;private属性在子类中和外部都不能被访问。
10,类的继承访问特性:(public,protected,private)
 a)基类中private属性成员,子类无论采用那种继承方式都不能访问。
 b)采用public继承,基类中的public,protected属性的成员访问特性在子类中仍然保持一致。
 c)采用protected继承,基类中的public,protected属性成员访问特性在子类中变为protected.
 d)采用provate继承,基类中的public,protected属性成员访问特性在子类中变为provate.
11,子类和基类的构造函数或析构函数调用顺序:
 当调用子类的构造函数时候先调用基类的构造函数(如果没有指明,则调用基类却省那个不带参数的构造函数;如果要指明则在子类构造函数名后加":基类名(参数)")。析构函数则相反,先调用子类析构函数,后调用基类的析构函数。
12,函数的覆盖:
 函数的覆盖是发生在发生父类和子类之间的。(函数的重载是发生在同一个类中)
 当子类中重写了父类的某些成员函数后,子类中的成员函数覆盖了父类的对应同名成员函数。
13,用父类指针访问子类对象成员时候,只能访问子类从父类继承来的那部分。(这时候外部不可以访问父类中保护和私有的部分,子类中不可访问父类私有部分。)
14,多态性:在基类的的成员函数前加virturl变成虚函数,当用子类对象调用该功能的成员函数时候,子类有的就调用子类的,子类没有的就调用基类的。
 当C++编译器在编译的时候,发现被调用的成员函数在基类中定义的是虚函数,这个时候C++就会采用迟绑定技术(late binding),在运行的时候,依据对象的类型来确定调用的哪个函数,子类有调用子类的,子类没有的就调用基类的。
 如果基类中的成员函数不是虚函数,则这时候的绑定是早期绑定,在编译的时候就已经确定该调用哪个函数。
15,纯虚函数:在类中定义时 eg: virtual void f1()=0;
 纯虚函数没有函数体,含有纯虚函数的类叫做抽象类,抽象类不能实例化对象。当子类从抽象类的基类中派生出来时候,如果没有实现基类中的纯虚函数,则子类也是个抽象类,也不能实例化对象。
 纯虚函数被标名为不具体实现的虚成员函数,纯虚函数可以让类只具有操作的名称而不具有具体的操作的内容,让派生类在继承的时候再给出具体的定义。如果派生类没有给出基类的纯虚函数的具体定义的时候,派生类也为一个抽象类,也不能实例化对象。
16,引用:变量的别名。引用需要在定义的时候用一变量或对象初始化自己。引用一旦在定义的时候初始化,就维系在一个特定的变量或对象上。
 引用不占用物理内存(与定义引用的目标共用同一内存)。指针变量需要占用物理内存,用来存储地址。

孙鑫视频VC++深入详解学习笔记(全)

Lesson1: Windows程序运行原理及程序编写流程 窗口产生过程,句柄原理,消息队列,回调函数,窗口关闭与应用程序退出的工作关系,使用VC++的若干小技巧,stdcall与Lessone...
  • u010984552
  • u010984552
  • 2016年07月05日 16:08
  • 2875

资源分享-孙鑫VC++视频教程 rmvb格式 全20CD完整版

(注意以下为FTP下载地址,建议使用迅雷等下载工具下载,全20CD,已添加完整)...
  • u012352882
  • u012352882
  • 2014年05月08日 16:38
  • 1702

孙鑫C++学习笔记

孙鑫视频VC++深入详解学习笔记    VC++深入详解学习笔记 Lesson1: Windows程序运行原理及程序编写流程 Lesson2: 掌握C++基本语法 ...
  • u014162133
  • u014162133
  • 2015年06月20日 15:33
  • 1711

孙鑫vc++ 关于简单绘图读书笔记

1.划线1.1使用sdk划线void CDrawDemoView::OnLButtonDown(UINT nFlags, CPoint point) {       m_ptori = point; ...
  • chm_study
  • chm_study
  • 2008年05月31日 19:08
  • 548

孙鑫《VC++深入详解》完整版PDF 下载

非常不错的书,结合孙鑫视频看,效果很好。下载地址: http://pan.baidu.com/s/1sjBT1hV (链接更新时间:2015-08-28 00:59:03 一两年内应该有效)此书...
  • u011152007
  • u011152007
  • 2016年09月09日 17:10
  • 222

孙鑫c++视频

下载地址:http://club.topsage.com/thread-156290-1-1.html   视频目录(简介): CD1:Windows程序运行原理及程序编写流程,窗口产生过程,句...
  • lxh1230119
  • lxh1230119
  • 2012年06月19日 17:58
  • 2213

《VC++深入详解》孙鑫经典VC++视频教程

这里推荐孙鑫的视频,这部视频在《深入详解VC++》这本书的配套光盘里,个人觉得是最经典的不可多得的国人讲解的超高水平的VC++学习视频。视频共分20课,平均每课两个多小时。本套视频由孙鑫老师亲自授课录...
  • rainbow203
  • rainbow203
  • 2012年11月03日 15:12
  • 25875

孙鑫 VC++从入门到精通 视频教程flash 下载

在线资源: http://www.pconline.com.cn/pcedu/specialtopic/vcpp/11 http://www.pconline.com.cn/pcedu/empolde...
  • oncoding
  • oncoding
  • 2007年10月21日 20:10
  • 12636

孙鑫讲座小结

下了孙鑫老师的一个到大学里的讲座,里面讲了很多有用的东西,总结下来。不仅仅是对于编程,更对于自己很有帮助。当然了都是总结的很简略浅显,深入的东西还是要自己理解了~*切忌浮躁。走自己的路,让别人浮躁去吧...
  • lzlalpha
  • lzlalpha
  • 2006年12月21日 16:18
  • 895

孙鑫VC++讲座笔记-(2) C++

1, c语言中,结构体struct中不能包括函数的,而在C++中struct中可以包括函数。2,C++中结构体和类可以通用,区别主要表现在访问控制方面:struct中默认是public,而 class...
  • birdme007
  • birdme007
  • 2007年04月05日 15:03
  • 520
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:孙鑫VC++讲座笔记-(2)C++ (摘自CSDN)
举报原因:
原因补充:

(最多只允许输入30个字)