`

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

    博客分类:
  • vc++
阅读更多

C++经典语法与应用,类的编写与应用,构造与析构函数,函数的重载,类的继承,函数覆盖,基类与派生类的构造函数、析构函数先后调用顺序,如何在 派生类构造函数中向基类的构造函数传递参数,this成员变量,类型转换的内幕,虚拟函数与多态性,引用和指针的变量的区别与共同处。VC工程的编译原理 与过程,将工程中不同的类拆分到不同的原文件中,每一个类由一个.h和.cpp文件共同完成,头文件重复定义问题的解决,培养了学员良好的编程习惯,也为 以后分析MFC Appwizard生成的工程奠定了良好基础。

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)采用private继承,基类中的public,protected属性成员访问特性在子类中变为private.

11,子类和基类的构造函数或析构函数调用顺序:
当调用子类的构造函数时候先调用基类的构造函数(如果没有指明,则调用基类缺省那个不带参数的构造函数;如果要指明则在子类构造函数名后加”:基类名(参数)”)。析构函数则相反,先调用子类析构函数,后调用基类的析构函数。

12,函数的覆盖:
函数的覆盖是发生在发生父类和子类之间的。(函数的重载是发生在同一个类中)
当子类中重写了父类的某些成员函数后,子类中的成员函数覆盖了父类的对应同名成员函数。

13,用父类指针访问子类对象成员时候,只能访问子类从父类继承来的那部分。(这时候外部不可以访问父类中保护和私有的部分,子类中不可访问父类私有部分。)

14,多态性:在基类的的成员函数前加 virtual 变成虚函数,当用子类对象调用该功能的成员函数时候,子类有的就调用子类的,子类没有的就调用基类的。
当C++编译器在编译的时候,发现被调用的成员函数在基类中定义的是虚函数,这个时候C++就会采用迟绑定技术(late binding),在运行的时候,依据对象的类型来确定调用的哪个函数,子类有调用子类的,子类没有的就调用基类的。
如果基类中的成员函数不是虚函数,则这时候的绑定是早期绑定,在编译的时候就已经确定该调用哪个函数。

15,纯虚函数:在类中定义时 eg: virtual void f1()=0;
纯虚函数没有函数体,含有纯虚函数的类叫做抽象类,抽象类不能实例化对象。当子类从抽象类的基类中派生出来时候,如果没有实现基类中的纯虚函数,则子类也是个抽象类,也不能实例化对象。
纯虚函数被标名为不具体实现的虚成员函数,纯虚函数可以让类只具有操作的名称而不具有具体的操作的内容,让派生类在继承的时候再给出具体的定义。如果派生类没有给出基类的纯虚函数的具体定义的时候,派生类也为一个抽象类,也不能实例化对象。

16,引用:变量的别名。引用需要在定义的时候用一变量或对象初始化自己。引用一旦在定义的时候初始化,就维系在一个特定的变量或对象上。
引用不占用物理内存(与定义引用的目标共用同一内存)。指针变量需要占用物理内存,用来存储地址。

c++, code, mfc, vc, vc++, 孙薪
分享到:
评论

相关推荐

    孙鑫C++教程(全20讲)PPT讲义源码及电子书

    2.孙鑫C++教程源码 3.孙鑫C++教程电子书 VC++深入详解的全部课程目录 第一课:Windows程序运行原理 第二课:掌握C++ 第三课:讲述MFC AppWizard的原理与MFC程序框架的剖析 第四课:MFC消息映射机制的剖析,讲述如何运用...

    孙鑫 VC++ 深入详解书中源码

    《孙鑫 VC++ 深入详解》是一本深受程序员喜爱的VC++技术书籍,作者孙鑫以其深入浅出的讲解方式,详细剖析了VC++的底层机制和高级特性。书中的源码是理解理论知识的关键实践部分,通过分析和运行这些代码,读者可以更...

    孙鑫VC++视频讲座配套幻灯+全套示例源代码

    《孙鑫VC++视频讲座配套幻灯+全套示例源代码》是一份全面学习VC++编程的宝贵资源,由知名讲师孙鑫精心制作。这份资料集合了理论讲解、实例演示和源码分析,旨在帮助初学者及有经验的开发者深入理解和掌握VC++这一...

    java技术从入门到精通(孙鑫)学习笔记-Lesson2.doc

    java技术从入门到精通(孙鑫)学习笔记-Lesson2

    经典资料:孙鑫vc++视频讲义配套的源代码20集全第1-10。

    《孙鑫VC++视频讲义配套源代码》是一份经典的编程学习资源,涵盖了从基础到进阶的VC++编程知识。这份资料由知名IT讲师孙鑫精心制作,旨在帮助学习者通过实际操作来理解VC++编程的核心概念和技术。源代码分为20个部分...

    VC++深入详解-孙鑫,孙老师的C++ 课程的配套demo 源码

    《VC++深入详解》是孙鑫老师的一部经典著作,主要针对C++编程语言在Microsoft Visual C++(简称VC++)环境下的应用进行深入讲解。这本书不仅覆盖了C++的基础语法,还包括了高级特性和实战技巧,是学习C++编程的理想...

    孙鑫老师VC++6.0视频教程对应源代码

    2. **C++程序结构**:讲解C++程序的基本构成,如`#include`预处理指令、`main`函数、注释的使用等。 3. **数据类型**:介绍C++中的基本数据类型,如int、char、float、double等,以及它们的用途和表示范围。 4. **...

    java技术从入门到精通(孙鑫)学习笔记-Lesson2(面向对象上).doc

    面向对象编程是Java技术的核心,它是以对象为中心的编程方式,着重于对象的状态和行为的描述。简单来说,面向对象编程(OOP)是通过对象之间的交互来完成任务的编程模型。与传统的面向过程编程不同,后者注重算法和...

    孙鑫_VC++入门到精通_PPT

    《VC++入门到精通》是由知名编程教育专家孙鑫老师精心制作的一套PPT教程,旨在帮助初学者快速掌握Visual C++(简称VC++)这一强大的C++编程环境。孙鑫老师的教学风格深入浅出,使得这套教程既适合完全没有编程基础的...

    孙鑫_VC++入门到精通_源代码

    《孙鑫_VC++入门到精通_源代码》是著名编程教育家孙鑫老师针对初学者推出的VC++学习资源,旨在帮助学习者系统地掌握Visual C++编程基础与进阶技术。该资源包含了丰富的源代码实例,覆盖了多个课程章节,如lesson 17...

    vc++PPT讲义和mfc教程及c++入门基础讲解

    该资源由内附孙鑫讲解的vc++编程1-20课的PPT讲解和详细实现代码,另附c++入门基础的课程,是每位c++编程爱好者必学的课程资源c++编程进阶的必经之路。

    语言程序设计资料:Java-笔记-孙鑫版.doc

    语言程序设计资料:Java-笔记-孙鑫版.doc

    VC.rar_visual c

    总之,VC++结合Visual Studio提供了强大的开发环境,而“孙鑫VC++笔记”这样的学习资料则可以帮助开发者快速入门并深入理解C++编程和Windows应用程序开发。通过理论学习与实践操作相结合,你可以逐渐掌握这个强大的...

    java技术从入门到精通(孙鑫)学习笔记

    孙鑫老师的《java技术从入门到精通》学习笔记是许多初学者和进阶者的重要参考资料。下面,我们将深入探讨这份珍贵资料中可能涵盖的核心概念。 首先,入门阶段,你需要了解Java的基础语法。包括数据类型(如基本类型...

    vc++深入祥解(孙鑫老师的电子版本)30

    不用说了,最经典的东西,经得住考验的东西,不衰的东西,下的时候注意了, 有41个压缩包

    VC++深入详解.rar

    《VC++深入详解》这本书是面向有一定VC++基础的开发者,旨在揭示Windows程序设计的深层原理,特别是深入探讨Microsoft Foundation Class (MFC)框架的工作机制。MFC是微软提供的一套C++类库,用于简化Windows应用程序...

    孙鑫 c++ 视频个人总结

    在孙鑫的C++视频教程中,我们深入学习了C++这一强大且广泛使用的编程语言。这个教程不仅涵盖了C++的基础语法,还涉及了更为高级的主题,如算法、数据结构和编译原理,旨在帮助初学者全面理解C++并具备实际编程能力。...

    vc++(孙鑫)lesson1

    【VC++ 孙鑫教程 Lesson 1 知识点详解】 VC++,全称为Microsoft Visual C++,是一款由微软公司开发的集成开发环境,主要用于编写使用C++语言的应用程序。在孙鑫老师的教程中,Lesson 1是入门的基础,主要涵盖了以下...

    孙鑫C++教程(全20讲)PPT讲义及代码.zip

    《孙鑫C++教程(全20讲)PPT讲义及代码.zip》是一份针对初学者的C++编程教程,旨在帮助零基础的学员掌握C++编程语言的基础知识和核心概念。这份教程包含了20个章节的完整内容,通过PPT讲义和配套代码,为学习者提供了...

    VC++课程设计报告-图书馆管理系统样本.doc

    1. 孙鑫的《VC++进一步详解》,深入理解VC++编程原理。 2. 郑阿奇的《Visual C++实用教程(第3版)》,提供实用的编程技巧。 3. 管西京的《进一步体验VC++项目开发(开发日记)》,分享项目开发经验。 4. 马安鹏的...

Global site tag (gtag.js) - Google Analytics