C 的類為什麼要設定私有這個概念

2022-02-21 07:46:51 字數 1552 閱讀 9189

1樓:

一個類,除了有成員函式之外還有成員變數

為什麼要有私有成員?

舉一個最簡單的例子:

假如你封裝了一個類用來求矩形面積的

有兩個成員函式setx() 和sety()用來設定長和寬然後呼叫calc()求面積,然後用printarea()輸出結果這種情況下你就需要在你的類裡面設定一個 面積 的成員變數吧?而這個變數你不希望別人可以修改,對吧?因為別人在呼叫calc之後修改了 面積成員變數是不是你的類結果就不對了?

mfc中每一個控制元件都有自己維護的成員變數,這些變數在封裝的過程中不希望使用這些類的程式去修改,,這個時候就要設定為私有!

如果做成dll 後破解,是否公有部分的函式更容易被發現?

這個純屬扯談

公有私有保護成員的訪問是編譯初期做的

說白了是預編譯階段檢查的

public private 跟protect這些關鍵字對生成的可執行檔案一點影響都沒有

不信樓主試試寫個小東西試試,然後計算下exe的hash

2樓:八路搶答器

這裡設定為私有是為了防止其他函式無意的訪問和修改,看源**設定成私有就能防止別人看見嗎?顯然你理解錯了,不是防止別人,是防止其他函式

3樓:

私有是專案自己可用,公用是專案之間可用。生dll後公有類是可以被呼叫專案類例項化並呼叫。

4樓:糖二灰

類私有和公有主要為保證類的安全性和封裝性的,防止類在呼叫時候其中的變數被莫名其妙的修改,如果是公有變數,那麼任何地方都可以直接修改這個類物件的變數,但是設定完私有以後,只能通過特定的介面函式去修改這個值,以保證這些私有的變數不被隨意的以任何方式改變原來的值。

跟你說的那些沒有關係,私有和公有的意思不在於你說的方面。

c++中,類裡的私有成員和保護成員一般有什麼設定原則?為什麼成員函式一般放在公有成員裡

5樓:匿名使用者

公用(public):訪問許可權最高;除派生類外,外部函式也可以直接訪問(無論是成員變數還是成員函式)。

私有(private):訪問許可權最低;只能是該類內部函式互相呼叫,派生類、外部函式都不能訪問。

保護(protect):訪問許可權中間;該類內部函式、派生類都能訪問,外部類、外部函式不能訪問

c++中為什麼類的建構函式一般設定成保護型別,解構函式設定成公有型別?

6樓:匿名使用者

virtual 函式定義後的=0是指純虛擬函式。

解構函式設定為公有是讓其可以析構,私有的解構函式不能正常析構呼叫。

至於為什麼這個類的建構函式設定為保護,是因為有純虛擬函式的類都是抽象類,抽象類不能例項化,因此這麼寫可以提醒程式設計師不要new。

7樓:匿名使用者

設定成保護的是為了防止在類外面建立物件,例如設定成保護的,就不允許這樣建立物件:factory fc;

「~factory()=0」中的「=0」代表該函式是一個純虛擬函式,即沒有實現的函式,需要子類繼承實現該函式。

為什麼要引入水分活度這個概念他有什麼具體作用

因為食品的穩定性與安全性與水分含量並不直接相關,而是與水分 狀態 或者是食品中水的 可利用性 相關。證據表明,不同種類的食品,即使水分含量相同,其腐敗變質的難易程度也存在明顯的差異,而且食品中的水與其非水組分結合的強度不同,處於不同的存在狀態強烈結合的那一部分水是不能有效的被微生物和生物化學所利用,...

是不是有這個必要,為什麼電源線要繞幾圈再接開關

剛好看見了這個問題,真巧。上次我家裝修,我就看見安裝水電的師傅是這樣做的。本人好奇心比較重,特意問題了一下師傅。時間隔得比較久了,記得不是很清楚,如果有錯誤的地方,希望大家指正哈。1 方便維修。裝電線的時候都要考慮這方面的問題。電對我們日常生活中很重要。對於這種每天都使用的東西,時間久了,難免會出現...

速度這個概念本來是相對的,但是為什麼說光速是絕對的30萬公里

光是一種電磁波,電磁波又是什麼?變化的電場會產生磁場,而變化的磁場又會產生電場,於是一個根據特定規律變化的電磁場會在空間中交替的產生電場和磁場,並且向周圍傳播,這就是電磁波。電磁波是由電磁場變化產生的,電磁波傳播的速度受到麥克斯韋方程的約束,是由磁導率和介電常數決定的。也就是說它是由介質傳播電場和磁...