言入門到c++使用高手:深入學(xué)習(xí)C++之基本語(yǔ)言(一))
第二章 基本語(yǔ)言第一節(jié) 語(yǔ)言特性,工程構(gòu)成,可移植性1. 語(yǔ)言特性:過(guò)程式,對(duì)象式程序設(shè)計(jì)面向過(guò)程式的程序設(shè)計(jì)(過(guò)程式的程序設(shè)計(jì):c語(yǔ)言程序設(shè)計(jì)):從上到下,逐步求精,按順序的一步一步把問(wèn)題解決結(jié)構(gòu): 學(xué)生, 名字, 性別, 成績(jī)要使用結(jié)構(gòu),定義一個(gè)屬于該結(jié)構(gòu)的變量基于對(duì)象的程序設(shè)計(jì)和面向?qū)ο蟮某绦蛟O(shè)計(jì)c中,我們把結(jié)構(gòu)叫做類, 結(jié)構(gòu) 類c中,當(dāng)我們使用到類的話,就不叫定義結(jié)構(gòu)變量,而是叫定義對(duì)象, 結(jié)構(gòu)變量 對(duì)象在類中可以定義成員變量,還可以定義一些屬于該類的函數(shù)(方法),實(shí)現(xiàn)一些功能把功能包在類中,需要的時(shí)候通過(guò)定義一個(gè)對(duì)象的方式來(lái)調(diào)用的程序,這種程序的書寫方式,就叫基于對(duì)象的程序設(shè)計(jì)繼承性, 多態(tài)性, 升華了基于對(duì)象的程序設(shè)計(jì),就叫面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì)的優(yōu)點(diǎn): a) 易于維護(hù), b) 易于擴(kuò)展 c) 模塊化(通過(guò)設(shè)置各種訪問(wèn)級(jí)別,限制訪問(wèn),保護(hù)了數(shù)據(jù))structdagongzai{//這里有一些方法(該類的函數(shù))voidqichuang();voidchuangyifu();...// 提供對(duì)外的接口,供他人調(diào)用,以應(yīng)付應(yīng)急事件voidtufashijian(inteventtype);//事件的函數(shù)}structdagongzaimyclass;//對(duì)象myclass.qichuang();// 新打工仔職業(yè), tuixiaoyuan類, 繼承自dagongzai類// 繼承dagongzai類的各種方法,又可以增加自己的新方法,在c中就稱為繼承性//多態(tài)性//父類中和子類中有同名函數(shù),到底是調(diào)父類中的函數(shù)還是子類中的函數(shù)2. 編寫一個(gè)最簡(jiǎn)單的c程序vs中一個(gè)解決方案中可以包含若干個(gè)項(xiàng)目,LZ在Linux下使用的是clion,所以和原課程不是很一致main()函數(shù)是整個(gè)程序的入口函數(shù),系統(tǒng)就是從該函數(shù)開(kāi)始執(zhí)行#include iostream //main()中返回值一般表示狀態(tài),返回0就表示成功,非0一般表示有些錯(cuò)誤 int main() { std::cout Hello, World! std::endl; return 0; }附上CMakeLists.txtcmake_minimum_required(VERSION 3.14) project(lession_part_two) set(CMAKE_CXX_STANDARD 11) add_executable(lession_part_two main.cpp)3. 工程文件構(gòu)成規(guī)律一個(gè)項(xiàng)目中包含多個(gè).cpp(源文件)和多個(gè).h(頭文件).c, .cpp, .cc, .cxx源文件后綴, GNU, .m, .mm (mac), 頭文件以.h居多, .hpp(把頭文件和實(shí)現(xiàn)放在一個(gè)文件中去,減少編譯次數(shù))#include stdio.h // c語(yǔ)言代碼 #include cstdio // c語(yǔ)言4. 可移植性問(wèn)題編譯型語(yǔ)言: 需要編譯過(guò)程,編譯成二進(jìn)制文件(可執(zhí)行文件),執(zhí)行速度更快,c解釋性語(yǔ)言: 不進(jìn)行預(yù)先編譯,先解釋,再運(yùn)行, Luawindows下的可執(zhí)行文件是不能在Linux下運(yùn)行,但是如果是源代碼經(jīng)過(guò)重新編譯,是可以在Linux下運(yùn)行的所以可移植性指的是源代碼的可移植性