原形:
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會盡量的將乙個列族的列放入同乙個伺服器內,這樣可以提高訪問效能,並且可以批量管理有關聯的一堆列,所有的資...