第二章 掌握C++
07-5-19 saturday
1,概念
封装性:将对象和对对象进行的操作组织在一起,保证了数据的安全性。
继承性:增加了软件的可扩充性和代码重用性。
多态性:
一,从结构到类:
1,结构体成员默认是公有(public)的;而类成员及方法默认是私有(private)的。
2,类定义后要加“;”。
二,C++的特性:
1,类与对象。
2,构造函数。
编译器提供默认的构造函数的情况:???
a,类有虚拟成员函数或有虚拟继承父类时。
b,类的基类有构造函数。
c,类中的所有非静态的对象数据成员,他们所属的类中有构造函数。
3,析构函数。
析构函数不允许有返回值,不允许带参数,一个类只有一个析构函数。
4,函数的重载。
重载条件:参数个数或参数类型不同。
不能重载:a,仅仅函数类型不同;b,有默认参数导致的歧异时。
5,this指针。
其指向对象本身。
6,类的继承。
a,无参数的构造函数调用:符合常规思维--先父类的构造,再子类的构造,然后子类的析构,最后父类的析构。
b,父类的参数输入:
fish():animal(400,300)
这种方法还被用于常量数据成员的初始化。
c,访问权限与继承:
public定义的成员可以在任何地方被访问。
protected定义的只能在该类及子类中被访问。
private定义的只能在该类内部访问。
在继承时没有定义以何种方式继承,则默认private方式。
以public访问权限继承基类时,基类的成员在子类中的权限不变。
以private访问权限继承基类时,基类的成员在子类中都变成private权限。
以protected访问权限继承基类时,基类的public,protected成员在子类中都为protected权限。
d,多重继承
注意可能多个基类中有名字相同的成员函数。
7,虚函数与多态性、纯虚函数。【多态性通过迟绑定技术实现!!!】
a,虚拟函数与多态。用virtual关键字申明的函数就叫--虚函数。
有virtual时会用迟绑定(late binding),无virtual时早期绑定(early binding)。
b,纯虚函数:虚成员函数不具体实现!
含有纯虚函数的类为抽象类,不能声明对象。÷
8,函数的覆盖与隐藏:
覆盖的条件:a,基类函数必须是虚函数。b,名称与列表必须完全一样。c,显然,一个在基类,一个在子类。
$$$当基类的函数不是虚函数时,覆盖就成了隐藏。
$$$子类的函数与基类的同名,但参数列表不同,也是隐藏。【注意与重载不同,重载只在同一个类中才有。】
9,引用: