C++知識點總結

一、基本語法

C++語言是一門基於C語言的編程語言,因此C++的基本語法與C語言相似,主要包括以下幾個方面:

1. 數據類型

C++的數據類型可以分為基本數據類型和衍生數據類型兩種。其中,基本數據類型包括整型、浮點型、字符型、布爾型和空類型,衍生數據類型包括數組、指針、結構體、共用體和枚舉類型。

//示例代碼:定義一個整型變量和一個指向整型變量的指針
int num = 10;
int *ptr = #

2. 控制語句

C++的控制語句包括順序結構、分支結構和循環結構。其中,常用的分支結構有if語句和switch語句,常用的循環結構有while循環、do-while循環和for循環。

//示例代碼:使用for循環輸出1~10的數字
for(int i=1;i<=10;i++)
{
    cout<<i<<endl;
}

3. 函數

在C++中,可以通過定義函數來實現代碼的復用。函數的定義包括函數類型、函數名、參數列表和函數體,其中參數列表可以為空,函數體可以返回一個值。

//示例代碼:定義一個函數,返回兩個數的和
int sum(int a,int b)
{
    return a+b;
}

二、面向對象編程

C++是一門面向對象編程的語言,支持封裝、繼承和多態等特性。

1. 封裝

封裝是C++面向對象編程中的一個重要特性,它可以將數據和操作數據的函數封裝在一起,實現數據的保護和隱藏,避免數據的不合法訪問。

//示例代碼:定義一個封裝了數據和訪問函數的類
class Student {
private:
    string name;
    int age;
public:
    string getName() {
        return name;
    }
    void setName(string n) {
        name = n;
    }
    int getAge() {
        return age;
    }
    void setAge(int a) {
        age = a;
    }
};

2. 繼承

繼承是C++面向對象編程的另一個重要特性,它可以通過建立類之間的繼承關係,實現代碼的重用和靈活性的提高。

//示例代碼:定義一個繼承自Student類的Undergraduate類
class Undergraduate: public Student {
private:
    string major;
public:
    string getMajor() {
        return major;
    }
    void setMajor(string m) {
        major = m;
    }
};

3. 多態

多態是C++面向對象編程的另一個重要特性,它可以實現函數的重載和虛函數的運行時綁定,提高程序的靈活性和可擴展性。

//示例代碼1:實現函數的重載
int sum(int a,int b)
{
    return a+b;
}
double sum(double a,double b)
{
    return a+b;
}

//示例代碼2:定義一個含有虛函數的類
class Shape {
public:
    virtual double area() {
        return 0;
    }
};

class Circle: public Shape {
private:
    double r;
public:
    Circle(double radius): r(radius) {}
    virtual double area() {
        return r*r*3.14;
    }
};

class Rectangle: public Shape {
private:
    double x,y;
public:
    Rectangle(double a,double b): x(a),y(b) {}
    virtual double area() {
        return x*y;
    }
};

三、STL庫

STL(Standard Template Library)是C++標準庫中的一個重要組成部分,提供了許多功能強大的容器類和算法,可以大大提高程序開發的效率。

1. 容器類

容器類是STL庫中的一個重要概念,包括vector、list、map等多種類型,每種類型都有自己的特點和適用範圍。

//示例代碼:定義一個vector容器,並將元素插入其中
vector v;
v.push_back(1);
v.push_back(2);
v.push_back(3);

2. 算法

算法是STL庫中的另一個重要概念,包括排序、查找、複製、統計等多種操作,可以輕鬆實現對容器的操作。

//示例代碼:使用算法對vector容器進行排序
vector v;
v.push_back(3);
v.push_back(2);
v.push_back(1);
sort(v.begin(),v.end());

四、文件操作

C++支持對文件進行讀寫操作,可以實現對外部文件的讀取和寫入。

1. 文件讀取

文件讀取是C++操作文件的一種常用方式,可以打開文件並讀取其中的內容。

//示例代碼:打開文件,並讀取其中的內容
ifstream in("test.txt");
if(!in.is_open()) {
    cout<<"Open file failed!"<<endl;
} else {
    string s;
    while(getline(in,s)) {
        cout<<s<<endl;
    }
}
in.close();

2. 文件寫入

文件寫入是C++操作文件的另一種常用方式,可以打開文件並將內容寫入其中。

//示例代碼:打開文件,並將內容寫入其中
ofstream out("test.txt",ofstream::app);
if(!out.is_open()) {
    cout<<"Open file failed!"<<endl;
} else {
    out<<"Hello world!";
}
out.close();

五、異常處理

C++支持異常處理機制,可以通過捕獲異常和拋出異常來處理程序中出現的異常情況。

1. 捕獲異常

捕獲異常是C++中對異常進行處理的一種方法,可以通過try-catch語句捕獲可能發生異常的代碼塊,並進行處理。

//示例代碼:捕獲異常並進行處理
try {
    int a,b;
    cin>>a>>b;
    if(b==0) {
        throw "Divisor can not be zero!";
    } else {
        cout<<a/b<<endl;
    }
} catch(const char* e) {
    cout<<e<<endl;
}

2. 拋出異常

拋出異常是C++中對異常進行處理的另一種方法,可以通過throw語句拋出異常,並在程序的其他位置進行處理。

//示例代碼:拋出異常並在另一個函數中進行處理
int divide(int a,int b) {
if(b==0) {
throw "Divisor can not be zero!";
} else {
return a/b;
}
}

int main() {
try {
int a,b;
cin>>a>>b;
cout<

原創文章,作者:JWLDF,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/366254.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
JWLDF的頭像JWLDF
上一篇 2025-04-02 01:02
下一篇 2025-04-02 01:02

相關推薦

發表回復

登錄後才能評論