【C++】类和对象(一)

C++面向对象的三大特性为:封装、继承、多态。

C++认为万事万物都皆为对象,对象上有其属性和行为

例如:

(1)人可以作为对象,属性有:姓名、年龄、身高、体重...,行为有:跑、跳...

(2)车可以作为对象,属性有:轮胎、方向盘、车灯..,行为有:载人...

1、封装

1.1封装的意义

封装是C++面向对象三大特性之一。

封装的意义:

(1)将属性和行为作为一个整体,表现生活中的事物。

(2)将属性和行为加以权限控制。

封装意义一:

在设计类的时候,属性和行为写在一起,表现事物。

语法:class 类名{

访问权限:

属性/行为;

};

示例:设计类计算圆的周长

cpp 复制代码
#include<iostream>
using namespace std;
//圆周率
const  double PI = 3.14;
//设计一个圆类,求圆的周长
class   Circle
{
//访问权限
public://公共权限
	//属性
	int m_r;//半径
	//行为
	double  calculate()//获取圆的周长
	{
		return  2 * PI * m_r;
	}
};
int main()
{
	//通过圆类创建具体的圆对象
	Circle  circle;
	//给圆对象的属性进行赋值
	circle.m_r = 10;
	cout << "圆的周长为:" << circle.calculate() << endl;
	system("pause");
	return  0;
}

结果:

实例化:通过类创建一个对象。比如:上述代码中的:Circle circle 就是实例化。

示例:设计一个学生类,属性有姓名和学号,可以给姓名和学号赋值,可以显示学生的姓名和学号

cpp 复制代码
#include<iostream>
#include<string>
using namespace std;
//设计学生类
class  Student
{
public ://公共权限
	//属性
	string  m_name;//姓名
	int m_id;//学号
	//行为
	//显示姓名和学号
	void showStudent()
	{
		cout << "姓名:" << m_name << " 学号:" << m_id << endl;
	}
	//给学号赋值
	void setId(int id)
	{
		m_id = id;
	}
	//给姓名赋值
	void  setName(string name)
	{
		m_name = name;
	}
};
int main()
{
	//创建一个具体学生,实例化对象
	Student s1;
	s1.setName("刘五");
	s1.setId(10);
	s1.showStudent();

	system("pause");
	return 0;
}

结果:

类中的属性和行为我们统一称为成员。

属性又叫成员属性、成员变量。

行为又叫成员函数、成员方法。

封装意义二:类在设计时,可以把属性和行为放在不同的权限下加以控制。

访问权限有三种:

(1)public 公共权限 类内可以访问,类外可以访问。

(2)protected 保护权限 类内可以访问,类外不可以访问

(3)private 私有权限 类内可以访问,类外不可以访问

相关推荐
m0_748248022 分钟前
C++20 协程:在 AI 推理引擎中的深度应用
java·c++·人工智能·c++20
笑我归无处2 分钟前
强引用、软引用、弱引用、虚引用详解
java·开发语言·jvm
02苏_2 分钟前
秋招Java面
java·开发语言
ytttr87310 分钟前
64QAM信号的数字预失真处理(MATLAB实现)
开发语言·matlab
Nebula_g15 分钟前
C语言应用实例:硕鼠游戏,田忌赛马,搬桌子,活动选择(贪心算法)
c语言·开发语言·学习·算法·游戏·贪心算法·初学者
爱吃甜品的糯米团子23 分钟前
详解 JavaScript 内置对象与包装类型:方法、案例与实战
java·开发语言·javascript
QT 小鲜肉31 分钟前
【Git、GitHub、Gitee】按功能分类汇总Git常用命令详解(超详细)
c语言·网络·c++·git·qt·gitee·github
派大星爱吃猫33 分钟前
C++中的inline函数(内联函数)
c++·inline·内联函数
清风wxy43 分钟前
Duilib_CEF桌面软件实战之Duilib编译与第一个界面程序
c++·笔记·ui·mfc
郝学胜-神的一滴44 分钟前
Linux下,获取子进程退出值和异常终止信号
linux·服务器·开发语言·c++·程序人生