面試題系列(5)

51.指針符號代碼是如何實現的
struct SStud
{
    int nNumb;
    char sName[20];
};
    std::list<SStud> mylist;
    list<SStud>::iterator it=mylist.begin();
    it->nNumb=100;
52外殼類(iterator)
使對象看上去和指針非常相似,可以取值*和->,以及可以++和--等等
a.封裝的是一個其他類的指針變量,例如iteartor中封裝的是SNode*的指針變量;
b.*符號不是直接把SNode的內容取出來,取出來的是SNode中的data
c.->符號不是把SNode的數據區或指針區選擇對象,選擇對象是數據區內部的各種數據;
d.++和--符號並不是指針直接向附近位置偏移,而是類內的指針變量按照某種規則偏到另一個地址上
53淺拷貝實現代碼:memcpy(&s1,&s2,sizeof(s1));
淺拷貝對於普通結構體就足夠了,例如兩個信息結構體對象之間的賦值和構造
(SStud s1=s2;)
必須是深拷貝的情況是要用到指針變量
54.單行行數一般爲內聯函數
55.系統中缺省存在的兩種運算:是拷貝構造和opeartor=賦值
56.無名對象:
a.只有構造對象的語句,沒有構造對象名
b.無名對象只限於當前行使用;
c.其析構函數是在離開該行瞬間執行
57系統缺省存在的兩種運算
a.是拷貝構造和opearor=賦值,是淺拷貝執行的 
自動轉換
a.由指針到對象自動轉換採用的是構造函數
b.由對象到指針的自動轉換採用的是類型轉換操作符(opeartor TYPE)
58定義對象時採用拷貝構造函數,對象定義好之後再使用對象時採用opeartor=
59.一種結構體輸出函數:ostream&opeartor(ostream &o,const SStud &s)
{cout<<s....;
return o;}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章