MFC学习(chapter2;1)
2014-04-24 21:55
162 查看
用的编程软件也是比较基本的VC6.0,原来也安装过VS2010,但好多地方不大会用,所以还是用最基本的VC6.0,本次只是看了一些最最基础的东西,好比一开始进入最开始的VC++界面如何建一个空的程序外壳,就是在新建菜单里面新建一个项目,选择win32 console application这个选项,再然后为其加上源文件,在Files选项卡下,选择C++ Source File,输入同样的名称即可进行C++程序的编写。这些东西虽然很基础但我还是希望不管如何先记录下来再说,毕竟万事开头难,再说想必也没有几个人会在学习笔记上记这些东西吧,这也算是在做少数人这一类了。
1.从结构到类
(1)结构体的定义与类的定义相似,一个使用struct关键字,一个使用class关键字,C语言中的结构体是不能包含函数的,但在C++中可以结构体包含函数,称为成员函数。
(2)结构体默认情况下,其成员是公有的,而类在默认情况下其成员是私有的。
2.C++的特性
(1)类与对象是有区别的,我们定义一个类point,在main函数中我们则定义一个名为pt的对象
(2)构造函数的名字与类名相同,没有返回值,他是用来对对象本身做初始化工作。如果没有定义构造函数则有C++编译器自动添加一个构造函数。(p36)
(3)析构函数的定义格式是~类名(),如~point(),析构函数不允许带参数,并且一个类中只能有一个析构函数,在类中定义成员变量是不能直接给成员变量赋值。
(4)函数的重载有条件:函数的参数类型,参数个数不同,才能构成函数的重载。(p38注意)
(5)this指针等同于执行this=&pt,this->x=0。
(6)类的继承,class fish:public animal{ },当子类的对象被调用是,父类的构造函数先被调用,析构函数后被调用,还有一种就是在构造子类对象时,我们如何调用父类带参数的构造函数呢?可以在子类的构造函数之后,加上冒号,在加上父类带参数的构造函数,如:fish():animal(400,300)。类的public定义的成员可以在任何地方被访问,protected定义的成员只能在该类以及其子类中被访问,privated定义的成员只能在该类自身中访问。类的多重继承也是一个重点,定义的形式如下
class 派生类名:访问权限 基类名称,访问权限 基类名称,访问权限 基类名称{ ……};,基类的说明顺序在某些情况下还是很重要的~~(p47)
(7)虚函数与多态性、纯虚函数;关于虚函数以及函数的多态性,本质上就是在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。至于纯虚函数是指被标明为不具体实现的虚成员函数,如:virtual void breathe( )=0; 但凡含有纯虚函数的类叫做抽象类,这种类不能声明对象,只是作为基类为派生类服务,而在派生类中一定要完全实现基类的纯虚函数,否则派生类也变成了抽象类,不能实例化对象。
(8)函数的覆盖和隐藏;
i)构成函数覆盖的两个函数要分别位于派生类和基类中;基类函数必须是虚函数(使用virtual关键字进行声明);函数名称与参数列表必须完全相同。
ii)函数的隐藏,在派生类中隐藏了基类的同名函数,函数的隐藏和函数的重载有区别,重载发生在同一个类中。
(9)引用;int &b=a是指&b是a的另一个名字。
(10)C++类的设计习惯以及文件重复包含问题的解决;设计一个雷的时候,通常是将类的定义及成员函数的声明放到头文件中,将类中成员函数的事项放到源文件中,对于一个类A来说,需要A.h和A.cpp两个文件,对于main()函数我们把他放在 工程名.cpp 中。
1.从结构到类
(1)结构体的定义与类的定义相似,一个使用struct关键字,一个使用class关键字,C语言中的结构体是不能包含函数的,但在C++中可以结构体包含函数,称为成员函数。
(2)结构体默认情况下,其成员是公有的,而类在默认情况下其成员是私有的。
2.C++的特性
(1)类与对象是有区别的,我们定义一个类point,在main函数中我们则定义一个名为pt的对象
(2)构造函数的名字与类名相同,没有返回值,他是用来对对象本身做初始化工作。如果没有定义构造函数则有C++编译器自动添加一个构造函数。(p36)
(3)析构函数的定义格式是~类名(),如~point(),析构函数不允许带参数,并且一个类中只能有一个析构函数,在类中定义成员变量是不能直接给成员变量赋值。
(4)函数的重载有条件:函数的参数类型,参数个数不同,才能构成函数的重载。(p38注意)
(5)this指针等同于执行this=&pt,this->x=0。
(6)类的继承,class fish:public animal{ },当子类的对象被调用是,父类的构造函数先被调用,析构函数后被调用,还有一种就是在构造子类对象时,我们如何调用父类带参数的构造函数呢?可以在子类的构造函数之后,加上冒号,在加上父类带参数的构造函数,如:fish():animal(400,300)。类的public定义的成员可以在任何地方被访问,protected定义的成员只能在该类以及其子类中被访问,privated定义的成员只能在该类自身中访问。类的多重继承也是一个重点,定义的形式如下
class 派生类名:访问权限 基类名称,访问权限 基类名称,访问权限 基类名称{ ……};,基类的说明顺序在某些情况下还是很重要的~~(p47)
(7)虚函数与多态性、纯虚函数;关于虚函数以及函数的多态性,本质上就是在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。至于纯虚函数是指被标明为不具体实现的虚成员函数,如:virtual void breathe( )=0; 但凡含有纯虚函数的类叫做抽象类,这种类不能声明对象,只是作为基类为派生类服务,而在派生类中一定要完全实现基类的纯虚函数,否则派生类也变成了抽象类,不能实例化对象。
(8)函数的覆盖和隐藏;
i)构成函数覆盖的两个函数要分别位于派生类和基类中;基类函数必须是虚函数(使用virtual关键字进行声明);函数名称与参数列表必须完全相同。
ii)函数的隐藏,在派生类中隐藏了基类的同名函数,函数的隐藏和函数的重载有区别,重载发生在同一个类中。
(9)引用;int &b=a是指&b是a的另一个名字。
(10)C++类的设计习惯以及文件重复包含问题的解决;设计一个雷的时候,通常是将类的定义及成员函数的声明放到头文件中,将类中成员函数的事项放到源文件中,对于一个类A来说,需要A.h和A.cpp两个文件,对于main()函数我们把他放在 工程名.cpp 中。
相关文章推荐
- MFC学习笔记之坐标系
- VS2013MFC对话框工程学习笔记五 - 了解窗口和窗口控件的属性并修改
- 学习MFC时比较方便的源代码浏览方法
- VS2013MFC对话框工程学习笔记八 - C++关键字(标识符)的学习
- MFC学习之 怎么用VS2005打开 VS2008工程 方法
- MFC的网络编程学习摘记
- 用例子来学习MFC
- VC学习一日一练(3)---MFC中使用多线程技术
- MFC学习笔记1_MFC应用程序架构
- MFC学习笔记之:属性页和表单的使用
- MFC学习笔记
- 【MFC】根据进程名结束进程学习
- mfc多线程学习运行过程中遇到ASSERT问题
- OpenCV_MFC学习笔记
- 孙鑫mfc学习笔记第十八课
- MFC多文档学习的一些记录
- MFC学习笔记之七————工具栏编程与状态栏编程
- javascript高级程序设计学习笔记-Chapter 5: Reference Types
- 【MFC学习笔记-作业5-小数据库】【单选框,复选框,滚动条,列表框】
- 学习七十一雾央MFC游戏心得,初体验(一)