C++类和对象
我们知道C语言是面向过程的编程语言,而C++是面向对象(OPP)的编程语言。
面向对象是一种程序设计范型,也是一种程序开发的方法。而对象指的是类的实例,将对象作为程序的基本单元,将程序和数据封装在里面,以提高软件的重要性、灵活性和扩展性。
类(class)是C++中的特有的,形似于C语言中的结构体!
类有三大特性:封装、继承、多态
在一个类中,可以分为两种对象。分别是成员变量(数据)和成员函数(函数)。
封装 (encapsulation) 封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合。
封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过 外部接口,一特定的访问权限来使用类的成员多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,>>>父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作<<<(摘自“Delphi4 编程技术内幕”)。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。
“继承”是面向对象软件技术当中的一个概念。如果一个类A继承自另一个类B,就把这个A称为”B的子类”,而把B称为”A的父类”。继承可以使得子类具有父类的各种属性和方法,而不需要再次编写相同的代码。
在类中有三种访问限定符分别是:1、public(公有)2、protectd(保护)3、private(私有)
1 . public成员可从类外部直接访问,private/protect ed成员不能从类外部直接访问。
2 . 每个限定符在类体中可使用多次,它的作用域是从该限定符出现开始到下一个限定符之前或类体结束前。
3 . 类体中如果没有定义限定符,则默认为私有的。
4 . 类的访问限定符体现了面向对象的封装性。
类的作用域:
1 . 每个类都定义了自己的作用域,类的成员(成员函数/成员变量)都在类的这个作用域内,成员函数内可任意访问成员变量和其它成员函数。
2 . 对象可以通过 . 直接访问公有成员,指向对象的指针通过 -> 也可以直接访问对象的公有成员。
3 . 在类体外定义成员,需要使用 : : 作用域解析符指明成员属于哪个类域。
在类中可以写一个或多个函数,这种函数的作用域可以使类域,也可以是全局域。既可以在流泪中写函数,也可以在类外写,只不过要在类中声明,并且加作用域解析符。
class AA//AA为类名
{
pubilc://公有访问限定符
void Display()//Display就是成员函数
{
cout<<"Display()"<<endl;
}
private://私有访问限定符
int year;//这些为成员变量
int month;
int day;
};
这种函数是在类里面定义的成员函数,也可以在类外定义
class AA
{
public:
void Display();
private:
int year;
int month;
int day;
};
void AA::Display() //表明Display函数属于AA类
{
cout<<"Dispaly()"<<endl;
}