面向对象程序设计
概念:是一种程序设计泛型,同时也是一种程序开发的方法。
对象指的是类的实例,将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性,灵活性,和扩展性。
C++不是纯面向对象语言,而是基于面向对象语言,因为包含c语言
三种访问限定符
1:public成员可从类外部直接访问,private/protected成员不能从外部直接访问。
2:每个限定符在类体重可使用多次,它的作用域是从该限定符出现开始到下一个限定符之前或类体结束之前
3:类体中如果没有定义限定符,则默认是私有的。
4:类的访问限定符体现了面向对象的封装性。
作用域
类的作用域
1:每个类都定义了自己的作用域,类的成员(成员函数/成员变量)都在类的这个作用域内,成员函数内可任意访问成员变量函数。
2:对象可以通过,直接访问公有成员,指向对象的指针通过->也可以直接访问对象的公有成员。
3:在类体外定义成员,需要使用::作用域解析符指明成员属于哪个类域。
成员函数的定义与声明
1:类内定义成员函数
class person
{
public:
void Display()
{
cout<<_name<<"-"<<_sex<<"-"<<_age<<endl;
}
public:
char *_name;
char *_sex;
char _age;
};
类外面定义成员函数
class person
{
public:
void Display();
public:
char *_name;
char *_sex;
char _age;
};
void person::Display()
{
cout<<_name<<"-"<<_sex<<"-"<<_age<<endl;
}
类实例化对象
1:类知识一个模型一样的东西,限定了类有那些成员,定义出一个类并没有分配实际的内存空间来存储它。
2:一个类可以实例化出多个对象,实例化出的对象占用实际的物理空间存储类成员变量
3:做个比方。类实例化出对象就像现实中是用建筑设计图设计出的房子,类就像是设计图,只需要设计出需要什么东西,但是并没有存在,同样类也只是一个设计,实例化出的对象才能实际存储数据,占用物理空间。
类对象存储模型
每个对象的大小为类中所有成员变量的大小之和,当然也遵循内存对齐原则。