类和对象(⼀)——类对象概念及定义
c++是基于⾯向对象的语⾔,并不是纯⾯向对象的语⾔,因为它包含c的部分,c是⾯向过程的语⾔
⼀、⾯向对象
概念:⾯向对象程序设计(OOP)是⼀种程序设计的泛型,同时也是⼀种程序开发的⽅法,它将对象作为程序的基本单元,将程序和数据封装其中,以提⾼软件的重⽤性、灵活性和扩展性
⼆、类和对象的概念
1. 类:类是现实世界在计算机中的反映,它将数据和对这些数据的操作封装在⼀起(并没有开空间)
2. 对象:类的实例(占有实际的空间)
class Student        //类
{
public:
Student()
{}
private:
int _num;
char* _name;
int _age;
};
int main()
{
Student s;  //对象-> 类的实例
system("pause");
return 0;
}
1)类相当于盖楼房的图纸⼀样,虽然定义了有哪些成员,但并没有实际的空间
2)类可以实例化出多个对象,实例化出的对象占有实际空间(⽤来存储成员变量)
三、类的三⼤特性:
1.封装
2.继承
3.多态
封装:函数的封装是⼀种形式,隐藏对象的属性和实现细节(函数内部),仅仅对外提⾼函数的接⼝和对象进⾏交互。类的访问限定符可以协助其完成封装
四、类的三个访问限定符
1.public:公有的,类的成员可以从类外直接访问
2.private/protected:类的成员不能从类外直接访问
3.类的每个访问限定符可以多次在类中使⽤,作⽤域为从该限定符开始到下⼀个限定符之前/类结束
4.类中如果没有定义限定符,则默认为私有的(private)
5.类的访问限定符体现了类的封装性
因为_name是私有的,所以在类外不能使⽤,⽽_age,Eat()是公有的,所以在类外可以直接使⽤
五、类的定义
1.定义⼀个简单的类
2.类的对象可以直接通过 . 来访问类的公有成员,类的对象指针可以通过->来访问类的公有成员
class person
{
public:
void Display()
{
cout << _name <<"-"<< _age << endl;
}
public:
int _age;
char* _name;
};
int main()
{
person p;
p._age = 18;
p._name = "peter";
p.Display();
person* ptr = &p;
ptr->_age = 20;
ptr->_name = "jack";
ptr->Display();
system("pause");
return 0;
}
3.类外定义成员函数,需要使⽤::(作⽤域解析符)指明其属于哪个类
实例化类和实例化对象class person
{
public:
void Display();  //声明
};
void person::Display()//类外定义
{
//......
}
六、类的⼤⼩
类的成员函数放在公共代码区,所有该类的对象共享这些成员函数,每个对象的⼤⼩为类内成员变量的⼤⼩之和,遵循内存对齐原则
1.为什么要内存对齐?
答:为了提⾼程序的性能,⽅便cpu访问内存,处理器并不是⼀个字节⼀个字节来访问内存,⼀般是4个字节或8个字节
2.空类占多少个字节?为什么?
答:空类占1个字节,占位⽤,告诉系统我这⾥定义了⼀个类,虽然它是空的

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。