用的编程软件也是比较基本的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 中。