类和对象——封装的意义

 定义类时,可以将属性用m_表示,避免赋值的重名;

struct 和class都可以定义类,唯一区别在于class默认成员private,struct默认成员public;

 创建学生对象案例

#include<iostream>
#include<string>
using namespace std;
//设计一个学生类;
class stu 
{
	//访问权限:
public:
	//属性:
	string m_name;
	int m_num=0;
	//行为:
	void ShowName() {
		cout << "姓名:" << m_name << endl;
	}
	void ShowNum() {
		cout << "学号:" << m_num << endl;
	}
	void Set(int num, string name)
	{
		m_num = num;
		m_name = name;
	}
};


int main() 
{
	//利用类创建具体的学生对象;
	stu st1;
	//给对象属性赋值;
	st1.m_name = "miaomaio";
	st1.m_num = 1356;
	//调用行为输出姓名学号;
	st1.ShowName();
	st1.ShowNum();
	
	stu st2;
	//可以通过行为给对象属性赋值;
	st2.Set(1288, "喵");
	//调用行为输出姓名学号;
	st2.ShowName();
	st2.ShowNum();

	system("pause"); 

	return 0;
}

 下面程序中:

无法直接访问默认的private的姓名、学号;只可以通过Set函数间接访问;

#include<iostream>
#include<string>
using namespace std;
//设计一个学生类;
class stu 
{
	//属性:
	string m_name;
	int m_num=0;
public:
	//行为:
	void ShowName() {
		cout << "姓名:" << m_name << endl;
	}
	void ShowNum() {
		cout << "学号:" << m_num << endl;
	}
	void Set(int num, string name)
	{
		m_num = num;
		m_name = name;
	}
};


int main() 
{
	stu st2;
	//通过行为间接给对象属性赋值;
	st2.Set(1288, "喵");
	//调用行为输出姓名学号;
	st2.ShowName();
	st2.ShowNum();

	system("pause"); 

	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_46432495/article/details/121644030