l 函數(shù)重載(函數(shù)多態(tài))
可以有多個(gè)同名函數(shù),只要他們的參數(shù)不同即可。
int store (int ,int);
int store (long ,long);
int store (long);
調(diào)用該函數(shù)時(shí),指定的參數(shù)決定了調(diào)用哪一個(gè)版本
l 緩沖區(qū)存儲(chǔ); 定義一個(gè)數(shù)組 yum[100]來(lái)存儲(chǔ)字符串。
(如char yum [ ] = “Zombie liion”)
std::cin >> yum;
但是如何保證用戶的輸入不會(huì)溢出?而且如果用戶輸入了空格,cin 會(huì)認(rèn)為字符串就此結(jié)束,
不再會(huì)將接下來(lái)的內(nèi)容寫(xiě)入緩沖區(qū)。
為了解決這個(gè)問(wèn)題,必須調(diào)用cin 對(duì)象的方法getline并
提供兩個(gè)參數(shù) 1、要填充的緩沖區(qū) 2、最多讀取的字符數(shù)。
std::cin .getline(yum,18)
這樣可以讀取18個(gè)字符,包括空字符(空格)
在遇到回車(chē)后 停止讀取。
還可以: std::cin .getline ( yum,18,‘ ’);
這條語(yǔ)句在遇到空格后即停止讀取輸入。
ex: char name[100];
std::cin .getline(name,18);
l 類(lèi)和成員
1) 類(lèi)的聲明(class)比如聲明一個(gè)Tricycle類(lèi):
class Tricycle { //三輪車(chē)public: unsigned int speed; pedal(); //踏板 brake(); //剎車(chē) };一個(gè)成員變量speed 兩個(gè)成員函數(shù),這三個(gè)成員可以被其他類(lèi) 直接引用。
//聲明了類(lèi)后,系統(tǒng)并不會(huì)為這個(gè)Tricycle分配內(nèi)存,
他只是告訴編譯器,這個(gè)類(lèi)是什么,包括什么
聲明了類(lèi)后,可以用這個(gè)類(lèi)來(lái)創(chuàng)建對(duì)象。
ex:Tricycle Yong_Jiu; //永久牌三輪車(chē) 同 int n;
創(chuàng)建對(duì)象后,可使用“ . ”來(lái)訪問(wèn)其成員變量/成員函數(shù)
ex : Yong_Jiu .speed = 6
注意:這里 Tricycle .speed = 6 是不允許的。
調(diào)用pedal()函數(shù): Yong_Jiu .pedal();
class Tricycle { int model = 110;public: int.... pedal....}model并不在public 之列,所以他是私有的(PRivate)
雖然成員變量可以是共有的,但最好將他們都聲明為私有的(private)這樣只能通過(guò)成員函數(shù)訪問(wèn)他們,
用于設(shè)置或獲取私有成員變量值的函數(shù)稱(chēng)為 存取器(accessor),其他 類(lèi) 要使用這些變量,必須調(diào)用存取器.
要想訪問(wèn)私有函數(shù),要在類(lèi)中設(shè)置一個(gè)共有的接口函數(shù),類(lèi)的對(duì)象需要通過(guò)這個(gè)接口函數(shù)才能訪問(wèn)私有成員。
#include<iostream>using namespace std;class human {public: void set(int w) { weight = w; } int print ( ) { return weight ; }private: int weight;}; int main ( ) { human Tom; Tom.set(5); cout<<"Tom的體重為:"<<Tom.print()<<"/n"; human Mike; Mike.set(7); cout<<"Mike的體重為:"<<Mike.print()<<"/n"; return 0;}輸出結(jié)果如下: Tom的體重為:5
Mike的體重為:7
看似這么復(fù)雜的設(shè)置了一個(gè)接口是為了提高安全性,比如用戶輸入了一個(gè)超過(guò)范圍的數(shù),
這個(gè)就可以在接口函數(shù)set中進(jìn)行設(shè)定:
void set(int w) { if(w>0 && w<100) weight = w; else cout<<“請(qǐng)將weight的值設(shè)置為從0~100,否則系統(tǒng)將會(huì)把weight設(shè)置為0” weight = 0;}一般情況下,我們將類(lèi)的數(shù)據(jù)成員設(shè)置為私有,而使用類(lèi)的公有函數(shù)來(lái)訪問(wèn)它,
好處就是數(shù)據(jù)的賦值和讀取分開(kāi)操作,賦值函數(shù)不需要考慮讀取函數(shù)是如何工作的,
反之亦然,如此便提高了程序的可維護(hù)性。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注