最忌諱的就是利用C++寫C代碼!利用C++寫C代碼最主要的一個(gè)特點(diǎn)之一把類里面所有的數(shù)據(jù)都聲明成public的,本文就淺談了一下如何利用public和private將代碼分開的方法~~~
#define:
1.關(guān)鍵字public可以將類的成員說明為是公有的,及可以被該類的所有成員所訪問;
2.關(guān)鍵字private可以將類的成員說明為是私有的,它不能直接被對(duì)象訪問。 其實(shí),說白了就是對(duì)于公有成員,我們可以利用對(duì)象來進(jìn)行直接調(diào)用,比如說:
在上面這個(gè)程序中,由于Cat類中的成員函數(shù)weight被聲明成了公有成員,那么我們就可以在主窗口中首先創(chuàng)建一個(gè)Cat類的對(duì)象(cat),并利用.運(yùn)算符就可以直接調(diào)用weight這個(gè)數(shù)據(jù)成員了。
但是,值得注意的是,如果我們想要把上面程序中的public刪除掉,改成private。那么這個(gè)時(shí)候,我們就無法在由Cat類所聲明的對(duì)象中調(diào)用這個(gè)weight成員。這是,只有通過在類中設(shè)置一個(gè)公共的接口函數(shù),才能實(shí)現(xiàn)對(duì)weight的訪問,如下例:
通過這種方式,利用類中的公共接口函數(shù),我們就可以訪問調(diào)用類的私有成員。那么這樣做的好處是什么呢?
好處就是:提高代碼的安全性,防止造成錯(cuò)誤的輸入與輸出。因?yàn)樵陬惖墓步涌诤瘮?shù)中,我們可以對(duì)輸入的具體值進(jìn)行限定,那么這樣就不會(huì)造成數(shù)據(jù)的錯(cuò)誤。比如說下例:
==================================總結(jié)========================================
在一般情況下,我們可以將類的數(shù)據(jù)成員設(shè)置為私有的,然后調(diào)用類中的公共該接口函數(shù)來訪問他們。這樣做的好處是將數(shù)據(jù)的賦值與讀取分開操
作。比如說上例里面,我們就將數(shù)據(jù)的賦值函數(shù)設(shè)置成setWeight(int),將數(shù)據(jù)的讀取函數(shù)設(shè)置成print()。這樣的好處就是賦值函數(shù)不需要
考慮讀取函數(shù)是如何工作的,讀取函數(shù)中的代碼改變也不會(huì)影響到相應(yīng)的賦值函數(shù)。那么這樣就提高了代碼的可重用性。另外,由于將數(shù)據(jù)成員進(jìn)行了私有化,那么
各個(gè)對(duì)象不可以直接訪問并修改數(shù)據(jù)。比如說上例中想要直接修改weight的數(shù)值就是不合法的,只有通過公共的接口函數(shù)才能訪問并且修改到類里面的私有數(shù)
據(jù)成員(weight)。
這樣的設(shè)置時(shí)程序更容易維護(hù),并且可避免一些不應(yīng)有的錯(cuò)誤。
|
|