关于对象的引用作为参数,可以直接访问私有成员的问题
? ? ? ?首先,我們來(lái)看一個(gè)例子,在CPoint這個(gè)類中定義了兩個(gè)構(gòu)造函數(shù),第一個(gè)為普通的構(gòu)造函數(shù),第二個(gè)為拷貝構(gòu)造函數(shù),在拷貝構(gòu)造函數(shù)中通過p.x來(lái)訪問被引用的對(duì)象p的私有數(shù)據(jù)成員x和y,這個(gè)例子可能會(huì)讓很多人有疑惑,你可能會(huì)想為什么拷貝構(gòu)造函數(shù)的參數(shù)可以直接去訪問它自己的私有成員?那這個(gè)例子到底是錯(cuò)的還是對(duì)的呢
?
? ? ? ?答案是對(duì)的,我們得明白C++的限定符是限定類的,不是限定對(duì)象的,只要是類型相同就能相互訪問。兩個(gè)是同類型的,因此可以直接訪問,但是需要指定一下是哪個(gè)對(duì)象。所?謂訪問權(quán)限(如public,private),是對(duì)“類”來(lái)說(shuō)的,不是對(duì)“對(duì)象”來(lái)說(shuō)的,private訪問權(quán)限是其它類不能訪問,而非這個(gè)類的不同對(duì)?象不能訪問。
?
? ? ? ?結(jié)論,拷貝構(gòu)造函數(shù)本來(lái)就是用來(lái)把兩個(gè)相同類的對(duì)象賦值而已,那么被賦值的對(duì)象的類肯定和用來(lái)賦值的對(duì)象是一個(gè)類,所以在拷貝構(gòu)造函數(shù)里面這樣用,一點(diǎn)問題也沒有!
總結(jié)
以上是生活随笔為你收集整理的关于对象的引用作为参数,可以直接访问私有成员的问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 不是说js不需要编译吗,那‘ES6模块是
- 下一篇: 成都欢乐谷里面的项目多带带收费么