二,String型別內部結構剖析

2021-06-16 05:48:46 字數 2254 閱讀 1832

原形:

class string

;//普通建構函式

string::string(const char *str)

else

}// string的析構函式

string::~string(void)

//拷貝建構函式

string::string(const string &other)    // 得分點:輸入引數為const型

//賦值函式

string & string::operate =(const string &other) // 得分點:輸入引數為const型

剖析:能夠準確無誤地編寫出

string

類的建構函式、拷貝建構函式、賦值函式和析構函式

的面試者至少已經具備了

c++基本功的

60%以上!

在這個類中包括了指標類成員變數

m_data

,當類中包括指標類成員變數時,一定要

過載其拷貝建構函式、賦值函式和析構函式,這既是對

c++程式設計師的基本要求,也是《

effective

c++》中特別強調的條款。

仔細學習這個類,特別注意加注釋的得分點和加分點的意義,這樣就具備了

60%以上

的c++

基本功!試題8

:請說出

static

和const

關鍵字盡可能多的作用

解答:static

關鍵字至少有下列

n個作用:(1

)函式體內

static

變數的作用範圍為該函式體,不同於

auto

變數,該變數的記憶體

只被分配一次,因此其值在下次呼叫時仍維持上次的值;(2

)在模組內的

static

全域性變數可以被模組內所用函式訪問,但不能被模組外其它

函式訪問;(3

)在模組內的

static

函式只可被這一模組內的其它函式呼叫,這個函式的使用範

圍被限制在宣告它的模組內;(4

)在類中的

static

成員變數屬於整個類所擁有,對類的所有物件只有乙份拷貝;(5

)在類中的

static

成員函式屬於整個類所擁有,這個函式不接收

this

指標,因而

只能訪問類的

static

成員變數。

const

關鍵字至少有下列

n個作用:(1

)欲阻止乙個變數被改變,可以使用

const

關鍵字。在定義該

const

變數時,通常

需要對它進行初始化,因為以後就沒有機會再去改變它了;(2

)對指標來說,可以指定指標本身為

const

,也可以指定指標所指的資料為

cons

t,或二者同時指定為

const;(

3)在乙個函式宣告中,

const

可以修飾形參,表明它是乙個輸入引數,在函式內

部不能改變其值;(4

)對於類的成員函式,若指定其為

const

型別,則表明其是乙個常函式,不能修

改類的成員變數;(5

)對於類的成員函式,有時候必須指定其返回值為

const

型別,以使得其返回值不為「

左值」。例如:

const classa operator*(const classa& a1,const classa& a2);

operator*

的返回結果必須是乙個

const

物件。如果不是,這樣的****也不會編

譯出錯:

classa a, b, c;

(a * b) = c; //

對a*b

的結果賦值

操作(a * b) = c

顯然不符合程式設計者的初衷,也沒有任何意義。

剖析:驚訝嗎?小小的

static

和const

居然有這麼多功能,我們能回答幾個?如果只能回答

1~2個,那還真得閉關再好好修煉修煉。

這個題可以考查面試者對程式設計知識的掌握程度是初級、中級還是比較深入,沒

有一定的知識廣度和深度,不可能對這個問題給出全面的解答。大多數人只能回答出

static

和const

關鍵字的部分功能。

MFC內部結構剖析

mfc內部結構剖析 mfc程式的執行順序依次是 程式在載入main函式之前,會先為全域性變數和全域性物件分配記憶體空間。afxwinmain函式 winmain函式實際上是通過呼叫afxwinmain函式來完成它的功能的。afxwinmain呼叫afxgetthread函式獲得乙個cwintread...

MFC內部結構剖析

mfc程式的執行順序依次是 程式在載入main函式之前,會先為全域性變數和全域性物件分配記憶體空間。afxwinmain函式 winmain函式實際上是通過呼叫afxwinmain函式來完成它的功能的。afxwinmain呼叫afxgetthread函式獲得乙個cwintread型別的指標。cwin...

HBase內部結構

table表 就是有乙個或者多個列族組成,加上之前的 使用,這個表概念應該很熟了 row行 乙個行包括了多個列,這些列通過列族來分類 column family列族 列族是多個列的集合,hbase會盡量的將乙個列族的列放入同乙個伺服器內,這樣可以提高訪問效能,並且可以批量管理有關聯的一堆列,所有的資...