注册 登录
编程论坛 C++教室

为什么C++要有private,有什么用呢?

snowman666 发布于 2023-03-13 16:45, 293 次点击
初学C++,不太理解类里面的private。
网上搜到的都是说设置访问权限,让外部不可见,这是什么意思?
书上说private实现了类的数据隐藏,满足了面对对象的封装性,那我为什么要数据隐藏?


本人刚学C++,没参加过项目,看好多网上评论说参加项目就知道为什么了。我:。。。。。。
8 回复
#2
snowman6662023-03-13 16:49
目前本人对private的理解仅到在private之下的数据不能被类外函数访问一点,如果访问好像还需要用::来访问。这一点我也不确定
#3
snowman6662023-03-13 16:53
程序代码:

#include<iostream>
#include<string>
using namespace std;
class Student                         //类的声明
{private:                             //私有访问权限
    string m_strID;
    string m_strName;
    string m_strClass;
public:
    void Input();
    void Display() {
        cout << "学号" << m_strID << "姓名:" << m_strName << "班级:" << m_strClass;
    }
};
void Student::Input() {
    cout << ("\n======添加学生信息=======\n");
    cout << ("学号:");
    cin >> m_strID;
    cout << ("姓名:");
    cin >> m_strName;
    cout << ("班级:");
    cin >> m_strClass;
}
int main() {
    Student s;
    s.Input();
    s.Display();
    return 0;
}

这是书上给的代码,不确定那个::是不是用来访问private里的数据的,麻烦大佬也解答一下
#4
rjsp2023-03-14 10:40
现实中的对象,大多也都有private成分。
比如 电视机,只会暴露 屏幕、几个按钮 给你,不会把内部的电容等暴露给用户。

不确定那个::是不是用来访问private里的数据的
先得把基础知识系统学一遍,否则问题就太多了
https://zh.
#5
snowman6662023-03-15 19:23
回复 4楼 rjsp
好的,感谢
#6
pvm20002023-03-16 01:06
每个人还不得有点私密东西啊
#7
角动量2023-03-16 10:07
private就是不给外部的类或对象使用(除了friend友元类之外)访问
#8
appsion2023-03-16 11:00
你把一张照片发到朋友圈就是public, 但你相册里的照片从按下拍照那一下 默认就是private, 也就是你不公开别人就不会看到.  你是一个对象   你朋友圈的朋友也是对象.  你想让朋友看到的就是公开的,你不让朋友看的就是私有的.
#9
snowman6662023-03-21 13:13
回复 8楼 appsion
感谢
1