类的成员函数与类成员的访问控制

这篇博客介绍了C++中的类和成员访问控制,强调了通过public和private关键字来控制成员函数和变量的访问权限。在面向对象编程中,类的内部定义了成员函数和变量,外部只能通过public成员函数来访问private成员变量,以此实现数据封装。示例代码展示了如何创建一个Student类,并在main函数和外部函数中正确使用成员函数进行操作。

C++自学精简教程 目录(必读)

上一篇 自定义类型 struct/class(类、对象与成员变量)

从面向对象的角度来说,修改类的成员变量应该是类自己的事情用户不应该直接访问类的成员变量,而应该通过类提供的成员函数类访问

类的内部(绿色);类的外部(红色)

像下面这样:

#include<iostream>
using namespace std;
//类的外部
struct Student
{//左花括号之后:类的内部(开始的地方)
public://这一行之后的代码都对类的外部公开,可以在main函数,或者其他函数内部访问下面的内容
        //成员函数的一对花括号内部也是类的内部
    long get_id(void) { return m_id; }//类的成员函数 get_id   
    int get_age(void) { return m_age; }//类的成函数get_age
    void set_id(long long id) { m_id = id; }//类的成员函数set_id
    void set_age(int age) { m_age = age; }//类的成员函数set_age
private://这一行之后的代码都不对类的外部公开,不可以在main函数,或者其他函数内部访问下面的内容
    long m_id;//类的成员变量m_id
    int m_age;//类的成员变量m_age
//右花括号之前:类的内部(结束的地方)
};
//类的外部

//测试类对象在函数中使用是,哪些成员可以被访问
//这里也是类的外部
void test_class_fun(void)
{//这里也是类的外部
    Student stu;
    stu.get_age();//可以访问类的public成员
    //stu.m_age;//错误:编译不通过! 类的外部不可以访问类的private成员!
//这里也是类的外部
}
int main()
{//这里也是类的外部
    Student stu_zhang_san;
    stu_zhang_san.set_id(2022092345);//这里是类的外部,可以访问public成员函数set_id
    stu_zhang_san.set_age(20);//这里是类的外部,可以访问public成员函数set_age
        //类的外部,可以访问类的public成员函数get_id 和 get_age
    cout << "student infor : id=" << stu_zhang_san.get_id() << " age=" << stu_zhang_san.get_age();

    //测试类对象在函数中使用是,哪些成员可以被访问
    test_class_fun();

    return 0;
    //这里也是类的外部
}

程序输出如下:

说明:

上面代码中的public:表示公开类的成员,也就是让getid() get_age() setid() set_age()这几个函数可以被类的使用者访问。

上面代码中的private:表示不公开类的成员,也就是让类的使用者不能访问mid m_age这两个成员变量。

所以在main函数中,以及在test_class_fun函数中,都只能通过Student类的成员函数来读写学生的信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

C++程序员Carea

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

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

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

打赏作者

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

抵扣说明:

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

余额充值