访问功能
访问函数是一个短的公共功能,其工作是返回私有成员变量的值。例如,在上述的String类,你可能会看到这样的东西:
1
2
3
4
5
6
7
8
9
|
class
String { private : char
*m_chString; //
a dynamically allocated string int
m_nLength; //
the length of m_chString public : int
GetLength() { return
m_nLength; } }; |
getlength()是访问函数简单地返回m_nlength价值。
访问功能,通常有两种:getters和setters。干将是函数简单地返回私有成员变量的值。制定功能,只需设置一个私有成员变量的值。
这里有一个例子类,具有一定的getters和setters:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
class
Date { private : int
m_nMonth; int
m_nDay; int
m_nYear; public : //
Getters int
GetMonth() { return
m_nMonth; } int
GetDay() { return
m_nDay; } int
GetYear() { return
m_nYear; } //
Setters void
SetMonth( int
nMonth) { m_nMonth = nMonth; } void
SetDay( int
nDay) { m_nDay = nDay; } void
SetYear( int
nYear) { m_nYear = nYear; } }; |
为什么要提供公共访问的功能,它使一个成员变量的私人?答案是:“封装”。
封装
例如,你的电视遥控器提供的按钮,让你做的事情一样,把你的电视和关闭和调整音量。然而,如何实现远程实际上是隐藏。这很有用,因为它允许你使用远程无需担心的细节为什么它或它是如何实现的。这很有用,因为它允许你使用远程无需担心的细节为什么它或它是如何实现的。如果侏儒闯入你的房子在半夜,用新的替换你的电视遥控器内部的(但兼容)的技术,你可能没有注意到的。
封装的思想是隐藏的细节如何实现而暴露给用户一个接口。这允许用户使用的项目,而不必担心如何实施。
在C++中,访问说明符允许我们在我们的类实现封装。这通常是通过一类的私有成员变量,并提供公共职能(经常访问函数)允许用户与班主任工作。虽然这可能似乎比直接向公众提供更多负担,事实上这样做提供了一些非常有用的好处,帮助鼓励类的可重用性和可维护性。
也许最重要的是,有时会发现一类的初步实施太慢或使用太多内存,和一个更复杂的解决方案是必要的。封装的实施意味着一个类的实现可以完全改变,只要接口不变,类的使用者不必担心所有的变化!
考虑这个简单的例子:
1
2
3
4
5
6
7
8
9
10
11
12
|
class
Change { public : int
m_nValue; }; int
main() { Change
cChange; cChange.m_nValue
= 5; std::cout
<< cChange.m_nValue << std::endl; }; |