C++类与对象

1.简单的学生类

#include <iostream>
using namespace std;

//设计一个学生类,属性有姓名和学号
//可以给姓名和学号复制,可以显示学生的姓名和学号

//设计学生类
class Student
{
public:
    void setName(string name) {
        m_Name = name;
    }
    void setID(int id) {
        m_Id = id;
    }
    void showStudent() {
        cout << "name:" << m_Name << "ID:" << m_Id << endl;
    }
public: //公共权限
    //属性
    string m_Name;  //姓名
    int m_Id;       //学号
};

int main()
{
    Student stu;
    stu.setName("张三");
    stu.setID(222);
    stu.showStudent();
     
    return 0;
}


2.访问权限

//公共权限 public 成员 类内可以访问 类外可以访问
//保护权限 protected 成员 类内可以访问 类外不可以访问 儿子可以访问父亲中的保护内容
//私有权限 private 成员 类内可以访问 类外不可以访问 儿子不可以访问父亲中的私有内容

#include <iostream>
using namespace std;

class Person
{
	//姓名	公共权限
public:
	string m_Name;

	//汽车	保护权限
protected:
	string m_Car;

	//银行卡密码	私有权限
private:
	int m_Password;

public:
	void func() {
		m_Name = "张三";
		m_Car = "拖拉机";
		m_Password = 123456;
	}
};
int main()
{
	//实例化具体对象
	Person p1;

	p1.m_Name = "李四";
	//p1.m_Car = "奔驰";	//保护权限内容,在类外访问不到
	//p1.m_Paswsword = 123;//私有权限内容,类外访问不到

	//函数体内部可以访问所有属性
	p1.func();

	return 0;
}

3.struct和class的区别

struct 默认权限的 公有public
class 默认权限是 私有private

#include <iostream>
using namespace std;

class C1
{
	int m_A;	//默认是私有权限
};

struct C2
{
	int m_A;	//默认是公共权限
};
int main()
{
	C1 c1;
	c1.m_A = 10;	//错误,访问权限是私有

	C2 c2;
	c2.m_A = 10;	//正确,访问权限是公共
}

4.成员属性设置为私有

#include <iostream>
using namespace std;

//成员属性设置为私有
//1.可以自己控制读写权限
//2.对于写可以检测数据有效性

//人类
class Person
{
public:
	//设置姓名
	void setName(string name)
	{
		m_Name = name;
	}
	//获取姓名
	string getName()
	{
		return m_Name;
	}

	//获取年龄
	int getAge()
	{
		return m_Age;
	}

	//设置年龄(0~150)
	void setAge(int age)
	{
		if (age < 0 || age>150)
		{
			cout << "年龄输入有误,赋值失败" << endl;
			return;
		}
		m_Age = age;
	}

	//设置偶像
	void setIdol(string idol)
	{
		m_Idol = idol;
	}

private:
	string m_Name;	//姓名	可读可写
	int m_Age = 19;	//年龄	只读	也可以写(年龄必须在0到150之间)
	string m_Idol;	//偶像	只写
};
int main()
{
	Person p;
	p.setName("张三");
	cout << "姓名: " << p.getName() << endl;

	p.setAge(160);
	cout << "年龄:" << p.getAge() << endl;

	p.setIdol("小米");

	system("pause");
	return 0;
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱与意志

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值