必威体育Betway必威体育官网
当前位置:首页 > IT技术

类和对象(一)——类&对象概念及定义

时间:2019-10-26 01:15:07来源:IT技术作者:seo实验室小编阅读:83次「手机版」
 

对象

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个字节,占位用,告诉系统我这里定义了一个类,虽然它是空的

文章最后发布于: 2018-05-22 00:09:19

相关阅读

IP地址(A、B、C、D和E类)、网络地址、主机地址、子网掩

“IP地址”就相当于“电话号码”,而Internet中的路由器,就相当于电信局的“程控式交换机”。 点分十进制数表示的IPv4地址被分为几

图解机器学习-基于最小二乘法的分类

本小节文字比较少,但是理解起来内容还是蛮难的,花了我整整一天的时间把代码和前面的原理搞明白,其实最难的部分就在本小节的代码上。

以天际网为例,看中国类LinkedIn网站的困局

最近比较密集的接到一些猎头电话,说天际网要招聘产品副总裁。刚好最近我在从事和求职、搜索相关的产品工作,只是一个社交网站产品负

淘宝店铺各价格类型,商家要注意什么?

商家在报名淘宝活动时,时常会问报名里面的设置价格是什么意思,甚至有些个人商家不懂价格而填写错误,产生亏本。因为今天会对这些活动

C#中(int)、Conver.Toint32()、int.Parse()三种类型转换

自己也是刚学习C#程序设计语言,总结了一点知识点,想分享给大家。毕竟刚学习这门语言,学得不深,哪里如果有错误,请帮个忙指出一下哈,谢谢

分享到:

栏目导航

推荐阅读

热门阅读