What does it mean to be a private member (c++ classes)?(作为私有成员(c++类)意味着什么?)
本文介绍了作为私有成员(c++类)意味着什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我对C++类中的私有数据成员感到有点困惑。我是编程新手,还在学习《课程》一章,所以我可能有些超前了,但我觉得我漏掉了一条信息:
假设我有这样的代码:
class clocktype;
{
public:
void setTime(int,int,int);
.
.
.
private:
int hr;
int min;
int sec;
};
并且我创建了一个myClock对象。
clocktype myclock;
myclock::setTime(hour,minute,min)
{
if (0<= hour && hour < 24)
hr = hour;
if (0<= minute && minute <60)
min = minute;
if ( 0<= second && second<60)
sec = second;
}
myclock.setTime(5,24,54);
我的课本上说我不能这样做:
myclock.hr = 5;
因为hr
是私有数据成员,而对象myclock
只能访问公共成员。但这不是我在setTime
函数中实际上正在做的事情吗?我知道我正在通过我的公共成员函数访问myclock.hr
。但我仍在为背后的逻辑而苦苦挣扎。那么,成为私有数据成员意味着什么?
推荐答案
这里的主要思想是encapsulation。区分私有数据成员和公共setter方法将允许您更改clocktype
类的实现,而不需要使用它的每个人重新编译他们的代码。为了便于讨论,我们假设您决定更改clocktype
实现来存储从一天开始算起的秒数。您所需要做的就是重新实现setTime
方法,而不必触及公共接口:
class clocktype;
{
public:
void setTime(int,int,int);
private:
int secFromMidnight;
};
clocktype myclock;
myclock::setTime(hour, minute, second)
{
secFromMinight = second + (minute * 60) + (hour * 24 * 60);
}
这篇关于作为私有成员(c++类)意味着什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:作为私有成员(c++类)意味着什么?


基础教程推荐
猜你喜欢
- 我有静态或动态 boost 库吗? 2021-01-01
- 静态库、静态链接动态库和动态链接动态库的 .lib 文件里面是什么? 2021-01-01
- 如何在 C++ 中初始化静态常量成员? 2022-01-01
- C++结构和函数声明。为什么它不能编译? 2022-11-07
- 常量变量在标题中不起作用 2021-01-01
- 如何通过C程序打开命令提示符Cmd 2022-12-09
- 如何将 std::pair 的排序 std::list 转换为 std::map 2022-01-01
- 这个宏可以转换成函数吗? 2022-01-01
- 如何检查GTK+3.0中的小部件类型? 2022-11-30
- 在 C++ 中计算滚动/移动平均值 2021-01-01