C++day 8 类 封装 struct和class的区别

类有三大特性:封装,继承,多态。

具有相同属性的对象,称之为类。如人的属性有姓名年龄身高体重,行为有吃喝拉撒。

  1. 封装

封装的意义:

  •  将属性和行为作为一个整体,表现生活中的事物
  • 将属性和行为加以权限控制

意义一: 将属性和行为作为一个整体,表现生活中的事物

语法:class 类名{ 访问权限:属性 / 行为 };

  • 例一。设计一个圆类,求圆的周长
//圆周长公式:2*PI*半径(可作为一个属性)
const double PI = 3.14;

class circle
{
	//访问权限
public:            //公共权限

	//属性
	int r;  //半径
	//行为
	double zhouchang()    //获取圆的周长
	{
		return 2 * PI * r ;
	}
};    //这里只是个类,还没有对象

int main()
{
	circle c1;   //通过圆类创建圆(对象)     实例化一个对象
	c1.r = 10;    //给圆(对象)属性赋值
	cout << c1.zhouchang() << endl;   //这里通过c1访问周长函数,所以是zhouchang(),必须有括号
	system("pause");              
	return 0;   
}

例二.设计一个学生类,属性有姓名,学号。可以给姓名,学号赋值,再显示

class student
{
	//访问权限
public:            //公共权限
	//属性
	string name;
	string number;
	//行为
	void display()    
	{
		cout << name << "   " << number << endl;
	}
	void setname(string m_name)  //通过行为函数给属性赋值,不是直接在main函数给属性赋值
	{
		 name = m_name;
	}
};    

int main()
{
	student s1;   //实例化一个对象
	s1.name = "唐逸汤";    //给对象属性赋值
	s1.number = "140650128";
	s1.display();
	s1.setname("名字"); //通过一个函数,直接给属性赋值
	s1.display();
	system("pause");              
	return 0;   
}

通常称呼:类中的属性和行为 统一称为成员

                  属性  成员属性  成员变量

                  行为  成员函数 成员方法

意义二: 将属性和行为加以权限控制

1.public  公共权限    类内可以访问 类外可以访问

2.protected 保护权限        类内可以访问 类外不可以访问

3.private   私有权限        类内可以访问 类外不可以访问

class student
{
	//访问权限
public:            //公共权限
	string name;
protected:			//保护权限
	string car;
private:			//私有权限
	int password;
public:
	void func()
	{
		name = "北加";
		car = "自行车";
		password = 123345;    //类内都可以访问这三个属性
	}
};    

int main()    //类外
{
	student s1;   //实例化一个对象
	s1.name = "唐逸汤";    
	//s1.car = "飞机";   //因为是保护权限,所以类外无法访问
	system("pause");              
	return 0;   
}

3. struct和class的区别(struct也可以写类)

主要区别:默认的访问权限不同

struct默认权限为公共

class默认权限为私有

class c1
{
	int a;  //默认为私有
};    

struct c2
{
	int b;   //默认为公共
};

int main()    //类外
{
	c1 temp;  
	//temp.a = 10;   //私有不可访问
	c2 temp2;
	temp2.b = 10;
	cout << temp2.b << endl;  //struct 公共可访问
	system("pause");              
	return 0;   
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值