第二章 基本語言
第一節 語言特性,工程構成,可移植性
1. 語言特性:過程式,對象式程序設計
- 面向過程式的程序設計(過程式的程序設計:c語言程序設計):從上到下,逐步求精,按順序的一步一步把問題解決
-
結構: 學生, 名字, 性別, 成績
-
要使用結構,定義一個屬於該結構的變量
- 基於對象的程序設計和麪向對象的程序設計
-
c++中,我們把結構叫做類, 結構 == 類
-
c++中,當我們使用到類的話,就不叫定義結構變量,而是叫定義對象, 結構變量 == 對象
-
在類中可以定義成員變量,還可以定義一些屬於該類的函數(方法),實現一些功能
-
把功能包在類中,需要的時候通過定義一個對象的方式來調用的程序,
這種程序的書寫方式,就叫基於對象的程序設計 -
繼承性, 多態性, 昇華了基於對象的程序設計,就叫面向對象的程序設計
-
面向對象程序設計的優點: a) 易於維護, b) 易於擴展 c) 模塊化(通過設置各種訪問級別,限制訪問,保護了數據)
struct dagongzai{
//這裏有一些方法(該類的函數)
void qichuang();
void chuangyifu();
...
// 提供對外的接口,供他人調用,以應付應急事件
void tufashijian(int eventtype); //事件的函數
}
struct dagongzai myclass;//對象
myclass.qichuang();
// 新打工仔職業, tuixiaoyuan類, 繼承自dagongzai類
// 繼承dagongzai類的各種方法,又可以增加自己的新方法,在c++中就稱爲繼承性
//多態性
//父類中和子類中有同名函數,到底是調父類中的函數還是子類中的函數
2. 編寫一個最簡單的c++程序
-
vs中一個解決方案中可以包含若干個項目,LZ在Linux下使用的是clion,所以和原課程不是很一致
-
main()函數是整個程序的入口函數,系統就是從該函數開始執行
#include <iostream>
//main()中返回值一般表示狀態,返回0就表示成功,非0一般表示有些錯誤
int main() {
std::cout << "Hello, World!" << std::endl;
return 0;
}
- 附上CMakeLists.txt
cmake_minimum_required(VERSION 3.14)
project(lession_part_two)
set(CMAKE_CXX_STANDARD 11)
add_executable(lession_part_two main.cpp)
3. 工程文件構成
規律
-
一個項目中包含多個.cpp(源文件)和多個.h(頭文件)
-
.c, .cpp, .cc, .cxx源文件後綴, GNU, .m, .mm (mac), 頭文件以.h居多, .hpp(把頭文件和實現放在一個文件中去,減少編譯次數)
#include <stdio.h> // c語言代碼
#include <cstdio> // c++語言
4. 可移植性問題
-
編譯型語言: 需要編譯過程,編譯成二進制文件(可執行文件),執行速度更快,c++
-
解釋性語言: 不進行預先編譯,先解釋,再運行, Lua
-
windows下的可執行文件是不能在Linux下運行,但是如果是源代碼經過重新編譯,是可以在Linux下運行的
-
所以可移植性指的是源代碼的可移植性