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++类)意味着什么?


猜你喜欢
- 哪个更快:if (bool) 或 if(int)? 2022-01-01
- 如何提取 __VA_ARGS__? 2022-01-01
- 从父 CMakeLists.txt 覆盖 CMake 中的默认选项(...)值 2021-01-01
- 将 hdc 内容复制到位图 2022-09-04
- 使用 __stdcall & 调用 DLLVS2013 中的 GetProcAddress() 2021-01-01
- OpenGL 对象的 RAII 包装器 2021-01-01
- GDB 不显示函数名 2022-01-01
- DoEvents 等效于 C++? 2021-01-01
- XML Schema 到 C++ 类 2022-01-01
- 将函数的返回值分配给引用 C++? 2022-01-01