类和对象

学习C++的都知道,C++有三大特征:封装、继承和多态

1、类和对象的关系

类和对象之间的关系就可以看作是现实生活中,对物体的描述与物体的实体之间的关系,实体经过抽象处理之后就是ADT,ADT对应C++中的类,对象就是类的实例化。

抽象数据类型(ADT)是一个实现包括储存数据元素的存储结构以及实现基本操作的算法。

我们通过一段代码来说明:

#include<iostream>

class student   //类名为student
{
	char *name;
	char *id;
	int age;
	void study()
	{
		std::cout<<"learing"<<std::endl;
	}
	void eat()
	{
		std::cout<<"eating"<<std::endl;
	}
};

int main()
{
	student zhangsan;   //zhangsan 就是一个对象

	return 0;
}

上面可以看出,student就是类,张三就是对象,name,id,age就是成员变量,study(),eat()就是成员方法,对应在现实生活中就是,student是学生的统称,张三就是一个学生实体,name,id,age就是张三的属性,study(),eat()就是张三的行为。

2、C++中的三个访问限定符public\protected\private

在类中所有的成员方法和成员变量都有访问限制符来修饰。如果不做修饰,默认都是private。这里要重点提一下:在类中访问限定符默认是私有的,即private,结构体中默认为共有的即public

public修饰的成员变量和方法在任意位置都能访问。

protected修饰的成员变量和方法只能在本类和其子类类中访问。

private修饰的成员变量和方法只能在本类类中访问。

访问限定符修饰的范围是,从访问限定符到下次访问限定符出现的地方,或者到类结束。

我们以一段代码来演示。

#include<iostream>

class student
{
	char *name;
	char *id;
	int age;
	void study()
	{
		std::cout<<"learing"<<std::endl;
	}
	void eat()
	{
		std::cout<<"eating"<<std::endl;
	}
};

int main()
{
	student zhangsan;
	zhangsan.name;
	return 0;
}

可以看出在类中未使用访问限定符,编译器显示成员不可访问。就是因为默认所有成员的都是私有的,只能在类内访问。

#include<iostream>

class student
{
private:
	char *name;
	char *id;
	int age;
public:
	void study()
	{
		std::cout<<"learing"<<std::endl;
	}
	void eat()
	{
		std::cout<<"eating"<<std::endl;
	}
};

int main()
{
	student zhangsan;
	zhangsan.age;
	zhangsan.eat();
	return 0;
}

可以看出在加了访问修饰限定符之后,zhangsan.eat()就可以访问成功,但是zhangsan.age人就访问失败,只因为eat是public修饰的,而age是private修饰的。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值