C++基礎(chǔ)-(緒論)

C++基礎(chǔ)

課程緒論

  • C語言的缺點(diǎn)
  1. C類型檢查機(jī)制相對較弱,這使得程序中的一些錯誤不能在編譯時發(fā)現(xiàn)
  2. C本身幾乎沒有支持代碼重用的語言結(jié)構(gòu)象对,很難重用
  3. 當(dāng)程序的規(guī)模達(dá)到一定的程度時,程序員很難控制程序的復(fù)雜性
  • C++的優(yōu)勢
    1. C++被認(rèn)為是一種更好的C,或者說是C的超集
    2. C中麻煩與含糊的地方都在C++得到了解決
    3. C++包含C所有的特性
    4. 支持OOP面向?qū)ο蟮木幊?/li>
    5. 結(jié)合smalltalk與c的優(yōu)勢

面向?qū)ο蟮脑O(shè)計(jì)理念

  • 出發(fā)點(diǎn):
    • 更直接的描述客觀世界中存在的事物(對象)以及他們直接按的關(guān)系
  • 特點(diǎn)
    • 是高級語言
    • 將客觀事物做具有屬性和共同屬性的對象
    • 通過抽象找出同一類對象的共同屬性和行為叶圃,形成類
    • 通過類的繼承和多態(tài)實(shí)現(xiàn)的代碼公用
  • 優(yōu)點(diǎn)
    • 使程序能夠直接的反應(yīng)問題域和本來的面目袄膏,軟件開發(fā)人員能夠利用用人類認(rèn)識事物所采用的一般思維方法進(jìn)行軟件算法

C語言回顧

  1. C語言關(guān)鍵字
    • 數(shù)據(jù)類型:signed unsigned void short long char int float double struct enum union
    • 流程控制:if else switch case default for while do continue break return goto
    • 存儲類型和其他:auto regist(注冊) volatile(揮發(fā)性的,不穩(wěn)定的) static(靜態(tài)的) typedey const extern(外來的)
      sizeof.
  2. 運(yùn)算符
    • 優(yōu)先級和結(jié)合性
  3. 函數(shù)和指針
    • 函數(shù)的三要素:返回值掺冠,函數(shù)名沉馆,參數(shù)列表
    • 函數(shù)的編碼規(guī)范:
      1. 函數(shù)名必須有意義
      2. 一個函數(shù)的長度不要超過一個屏幕
    • 指針:存放的是變量的地址
      • 注意事項(xiàng):
        1. 野指針問題:
        1. 未申請空間,賦值:
        char *ch;
        strcpy (ch,"hello");
        2. 釋放空間后德崭,賦值:
        free(ch);
        strcpy(ch,"hello");
        
        1. 內(nèi)存泄漏
        char *ch=malloc();//0x45
        ch=malloc();
        
        1. 雙釋放
          free();
          free();
  4. C++與C不同的地方
    1. C++源文件后綴
      • .cc (linux)
      • .cpp (windows)
    2. 簡單的hello world
    #include <stdio.h>
    void main()
    {
        printf("hello world\n");
    }
    
    #include <iostream>
    int main(int argc,char**argv)
    {
        std::cout<<"hello world"<<std::end1;//std:標(biāo)準(zhǔn)命名空間斥黑,以后遇到命名沖突時,編譯器會提醒眉厨,程序員可以強(qiáng)制寫入System::nLibrary或Graphics::nLibrary來使用該常量
        return 0;
    }
    
    1. 可以連續(xù)輸出
    #include <iostream>
    using namespace
    int main()
    {
        int a=1;
        std::cout<<"hello world"<<%d<<std::endl;
    }
    
    1. 可以這樣使用
    #include <iostream>
    using namespace std;
    namespace A
    {
        int a=10;
    }
    namespace B
    {
        int a=20;
    }
    int a=100;
    int main()
    {
        cout<<"hello world"<<a<<A::a<<B::a<<endl;
        cout<<::a<<endl;
    }
    
  5. 程序解釋
    • C++程序生成的三個步驟
      1. 預(yù)處理:
        • 交由預(yù)處理器處理的指令以#打頭
        • 預(yù)處理器要獲得<iostream>頭文件所有的內(nèi)容并使之對當(dāng)前文件可用
        • 編譯
        • 鏈接
  6. 標(biāo)準(zhǔn)流的設(shè)備名
    • cin : stdin 標(biāo)準(zhǔn)輸入
    • cout:stdout 標(biāo)準(zhǔn)輸出
    • cerr:stderr 標(biāo)準(zhǔn)錯誤
    • cprn:stdprn 打印
  7. 流插入運(yùn)算符:<<可實(shí)現(xiàn)流的輸出
    • C++的輸入輸出可以實(shí)現(xiàn)自適應(yīng)
    int a=3;
    //char a=71;
    std::cout<<a<<std::endl;//第一個輸出3锌奴,第二個輸出G;
    
  8. 標(biāo)準(zhǔn)輸出效果
#include <iostream>
//int a=71;
//char a=71;
char a[20]="abc";
int main()
{
    std::cout<<a<<std::endl;//abc
    std::cout<<a<<std::endl;//a地址
}
  • 用成員輸出函數(shù)put可以達(dá)到輸出一個字符的效果:
cout.put(‘A’).put(‘\n’);
  1. cin標(biāo)準(zhǔn)輸入效果
#include <iostream>
int a;
int main()
{
    std::cin>>a;
    std::cout<<"a= "<<a<<std::endl;
    //如果是char a:輸1出1憾股,輸11出1缨叫,輸s出s
}
  1. 與C的輸入輸出的比較
    • 比printf,scanf更強(qiáng)大
    • 可以自動識別基本數(shù)據(jù)類型
    • 采用流算子來控制格式
    • 文件I/O也用流荔燎。
  2. 命名空間是為了避免兩個程序員使用相同的名字造成沖突耻姥。
    • 流讀取運(yùn)算符通常會跳過輸人流中的空格、tab鍵有咨、換行符等等的空白字符琐簇,以后將介紹如何改變這種行為。
    • 當(dāng)遇到輸入流中的文件結(jié)束符時座享,流讀取運(yùn)算符返回0(false);否則婉商,流讀取運(yùn)算符返回對調(diào)用該運(yùn)算符的對象的引用。
    • 每個輸入流都包含一組用于控制流狀態(tài)(即格式化渣叛、出錯狀態(tài)設(shè)置等)的狀態(tài)位丈秩。
    • 當(dāng)輸入類型有錯時,流讀取運(yùn)算符就會設(shè)置輸人流的failbit狀態(tài)位淳衙;
      如果操作失敗則設(shè)置badbit狀態(tài)位蘑秽,后面會介紹如何在I/O操作后測試這些狀態(tài)位。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末箫攀,一起剝皮案震驚了整個濱河市肠牲,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌靴跛,老刑警劉巖缀雳,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異梢睛,居然都是意外死亡肥印,警方通過查閱死者的電腦和手機(jī)识椰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來深碱,“玉大人腹鹉,你說我怎么就攤上這事∮。” “怎么了?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵墓赴,是天一觀的道長竞膳。 經(jīng)常有香客問我,道長诫硕,這世上最難降的妖魔是什么坦辟? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮章办,結(jié)果婚禮上锉走,老公的妹妹穿的比我還像新娘。我一直安慰自己藕届,他們只是感情好挪蹭,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著休偶,像睡著了一般梁厉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上踏兜,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天词顾,我揣著相機(jī)與錄音,去河邊找鬼碱妆。 笑死肉盹,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的疹尾。 我是一名探鬼主播上忍,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼纳本!你這毒婦竟也來了睡雇?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤饮醇,失蹤者是張志新(化名)和其女友劉穎它抱,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體朴艰,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡观蓄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年混移,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片侮穿。...
    茶點(diǎn)故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡歌径,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出亲茅,到底是詐尸還是另有隱情回铛,我是刑警寧澤,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布克锣,位于F島的核電站茵肃,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏袭祟。R本人自食惡果不足惜验残,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望巾乳。 院中可真熱鬧您没,春花似錦、人聲如沸胆绊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽压状。三九已至喻犁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間何缓,已是汗流浹背肢础。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留碌廓,地道東北人传轰。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像谷婆,于是被迫代替她去往敵國和親慨蛙。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評論 2 354

推薦閱讀更多精彩內(nèi)容