c語言入門到c++使用高手:深入學習C++之基本語言(一)

第二章 基本語言

第一節 語言特性,工程構成,可移植性

1. 語言特性:過程式,對象式程序設計

  • 面向過程式的程序設計(過程式的程序設計:c語言程序設計):從上到下,逐步求精,按順序的一步一步把問題解決
  1. 結構: 學生, 名字, 性別, 成績

  2. 要使用結構,定義一個屬於該結構的變量

  • 基於對象的程序設計和麪向對象的程序設計
  1. c++中,我們把結構叫做類, 結構 == 類

  2. c++中,當我們使用到類的話,就不叫定義結構變量,而是叫定義對象, 結構變量 == 對象

  3. 在類中可以定義成員變量,還可以定義一些屬於該類的函數(方法),實現一些功能

  4. 把功能包在類中,需要的時候通過定義一個對象的方式來調用的程序,
    這種程序的書寫方式,就叫基於對象的程序設計

  5. 繼承性, 多態性, 昇華了基於對象的程序設計,就叫面向對象的程序設計

  6. 面向對象程序設計的優點: 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下運行的

  • 所以可移植性指的是源代碼的可移植性

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章