最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++ 構(gòu)造函數(shù)和析構(gòu)函數(shù)示例詳解

 更新時(shí)間:2025年11月13日 09:36:42   作者:赫爾·普萊蒂科薩·帕塔  
本文詳細(xì)介紹了C++中的構(gòu)造函數(shù)和析構(gòu)函數(shù),包括它們的特點(diǎn)、調(diào)用時(shí)機(jī)以及在資源管理中的重要性,同時(shí),通過(guò)與Python的對(duì)比,展示了如何在Python中模擬C++的構(gòu)造函數(shù)特性,并強(qiáng)調(diào)了兩種語(yǔ)言在內(nèi)存管理和資源管理機(jī)制上的差異,感興趣的朋友跟隨小編一起看看吧

構(gòu)造函數(shù)(Constructor)

什么是構(gòu)造函數(shù)?

構(gòu)造函數(shù)是一種特殊的成員函數(shù),在創(chuàng)建類對(duì)象時(shí)自動(dòng)調(diào)用,用于初始化對(duì)象的數(shù)據(jù)成員。

構(gòu)造函數(shù)的特點(diǎn)

  1. 與類同名
  2. 沒(méi)有返回類型
  3. 可以重載
  4. 自動(dòng)調(diào)用

構(gòu)造函數(shù)的類型

1. 默認(rèn)構(gòu)造函數(shù)

class MyClass {
private:
    int value;
    std::string name;
public:
    // 默認(rèn)構(gòu)造函數(shù)(無(wú)參數(shù))
    MyClass() {
        value = 0;
        name = "Unknown";
        std::cout << "Default constructor called" << std::endl;
    }
};
// 使用
MyClass obj;  // 調(diào)用默認(rèn)構(gòu)造函數(shù)

2. 參數(shù)化構(gòu)造函數(shù)

class MyClass {
private:
    int value;
    std::string name;
public:
    // 參數(shù)化構(gòu)造函數(shù)
    MyClass(int val, const std::string& n) {
        value = val;
        name = n;
        std::cout << "Parameterized constructor called" << std::endl;
    }
};
// 使用
MyClass obj1(42, "Hello");
MyClass obj2 = MyClass(100, "World");

3. 拷貝構(gòu)造函數(shù)

class MyClass {
private:
    int value;
    std::string name;
public:
    // 拷貝構(gòu)造函數(shù)
    MyClass(const MyClass& other) {
        value = other.value;
        name = other.name;
        std::cout << "Copy constructor called" << std::endl;
    }
};
// 使用
MyClass obj1(42, "Original");
MyClass obj2 = obj1;  // 調(diào)用拷貝構(gòu)造函數(shù)
MyClass obj3(obj1);   // 調(diào)用拷貝構(gòu)造函數(shù)

4. 移動(dòng)構(gòu)造函數(shù)(C++11)

class MyClass {
private:
    int* data;
    size_t size;
public:
    // 移動(dòng)構(gòu)造函數(shù)
    MyClass(MyClass&& other) noexcept {
        // "竊取"資源
        data = other.data;
        size = other.size;
        // 置空原對(duì)象
        other.data = nullptr;
        other.size = 0;
        std::cout << "Move constructor called" << std::endl;
    }
};

初始化列表

class Student {
private:
    std::string name;
    int age;
    const int id;  // 常量成員
    int& ref;      // 引用成員
public:
    // 使用初始化列表(推薦)
    Student(const std::string& n, int a, int studentId, int& r) 
        : name(n), age(a), id(studentId), ref(r) {
        std::cout << "Student constructor called" << std::endl;
    }
    // 錯(cuò)誤示例:不能在構(gòu)造函數(shù)體內(nèi)初始化常量和引用
    // Student(const std::string& n, int a, int studentId, int& r) {
    //     name = n;
    //     age = a;
    //     id = studentId;  // 錯(cuò)誤!常量必須在初始化列表中初始化
    //     ref = r;         // 錯(cuò)誤!引用必須在初始化列表中初始化
    // }
};

析構(gòu)函數(shù)(Destructor)

什么是析構(gòu)函數(shù)?

析構(gòu)函數(shù)是一種特殊的成員函數(shù),在對(duì)象銷毀時(shí)自動(dòng)調(diào)用,用于清理資源。

析構(gòu)函數(shù)的特點(diǎn)

  1. 類名前加 ~
  2. 沒(méi)有參數(shù)
  3. 沒(méi)有返回類型
  4. 不能重載
  5. 自動(dòng)調(diào)用

析構(gòu)函數(shù)示例

class MyClass {
private:
    int* data;
    size_t size;
public:
    // 構(gòu)造函數(shù)
    MyClass(size_t s) : size(s) {
        data = new int[size];  // 動(dòng)態(tài)分配內(nèi)存
        std::cout << "Constructor: allocated " << size << " integers" << std::endl;
    }
    // 析構(gòu)函數(shù)
    ~MyClass() {
        delete[] data;  // 釋放內(nèi)存
        std::cout << "Destructor: freed " << size << " integers" << std::endl;
    }
};
// 使用
void test() {
    MyClass obj(100);  // 構(gòu)造函數(shù)調(diào)用
    // ... 使用 obj
}  // obj 離開(kāi)作用域,析構(gòu)函數(shù)自動(dòng)調(diào)用

完整示例

資源管理類示例

#include <iostream>
#include <cstring>
class String {
private:
    char* data;
    size_t length;
public:
    // 默認(rèn)構(gòu)造函數(shù)
    String() : data(nullptr), length(0) {
        std::cout << "Default constructor" << std::endl;
    }
    // 參數(shù)化構(gòu)造函數(shù)
    String(const char* str) {
        length = std::strlen(str);
        data = new char[length + 1];
        std::strcpy(data, str);
        std::cout << "Parameterized constructor: " << data << std::endl;
    }
    // 拷貝構(gòu)造函數(shù)
    String(const String& other) {
        length = other.length;
        data = new char[length + 1];
        std::strcpy(data, other.data);
        std::cout << "Copy constructor: " << data << std::endl;
    }
    // 移動(dòng)構(gòu)造函數(shù)(C++11)
    String(String&& other) noexcept {
        // 竊取資源
        data = other.data;
        length = other.length;
        // 置空原對(duì)象
        other.data = nullptr;
        other.length = 0;
        std::cout << "Move constructor" << std::endl;
    }
    // 拷貝賦值運(yùn)算符
    String& operator=(const String& other) {
        if (this != &other) {  // 防止自賦值
            delete[] data;  // 釋放原有資源
            length = other.length;
            data = new char[length + 1];
            std::strcpy(data, other.data);
        }
        std::cout << "Copy assignment: " << data << std::endl;
        return *this;
    }
    // 移動(dòng)賦值運(yùn)算符(C++11)
    String& operator=(String&& other) noexcept {
        if (this != &other) {
            delete[] data;  // 釋放原有資源
            // 竊取資源
            data = other.data;
            length = other.length;
            // 置空原對(duì)象
            other.data = nullptr;
            other.length = 0;
        }
        std::cout << "Move assignment" << std::endl;
        return *this;
    }
    // 析構(gòu)函數(shù)
    ~String() {
        delete[] data;
        std::cout << "Destructor" << std::endl;
    }
    // 其他成員函數(shù)
    const char* c_str() const { return data ? data : ""; }
    size_t size() const { return length; }
};
// 使用示例
int main() {
    std::cout << "=== 創(chuàng)建對(duì)象 ===" << std::endl;
    String s1;                    // 默認(rèn)構(gòu)造函數(shù)
    String s2 = "Hello";          // 參數(shù)化構(gòu)造函數(shù)
    String s3 = s2;               // 拷貝構(gòu)造函數(shù)
    std::cout << "\n=== 賦值操作 ===" << std::endl;
    s1 = s3;                      // 拷貝賦值
    s1 = String("World");         // 移動(dòng)賦值
    std::cout << "\n=== 函數(shù)調(diào)用 ===" << std::endl;
    {
        String temp = "Temporary"; // 參數(shù)化構(gòu)造函數(shù)
    } // temp 離開(kāi)作用域,調(diào)用析構(gòu)函數(shù)
    std::cout << "\n=== 程序結(jié)束 ===" << std::endl;
    return 0;
} // s1, s2, s3 離開(kāi)作用域,調(diào)用析構(gòu)函數(shù)

輸出結(jié)果

=== 創(chuàng)建對(duì)象 ===
Default constructor
Parameterized constructor: Hello
Copy constructor: Hello
=== 賦值操作 ===
Copy assignment: Hello
Parameterized constructor: World
Move assignment
Destructor
=== 函數(shù)調(diào)用 ===
Parameterized constructor: Temporary
Destructor
=== 程序結(jié)束 ===
Destructor
Destructor
Destructor

特殊成員函數(shù)規(guī)則

Rule of Three/Five/Zero

Rule of Three(C++98/03)

如果一個(gè)類需要以下之一,通常需要全部三個(gè):

  • 析構(gòu)函數(shù)
  • 拷貝構(gòu)造函數(shù)
  • 拷貝賦值運(yùn)算符

Rule of Five(C++11及以后)

如果類管理資源,應(yīng)該考慮定義全部五個(gè)特殊成員函數(shù):

  • 析構(gòu)函數(shù)
  • 拷貝構(gòu)造函數(shù)
  • 拷貝賦值運(yùn)算符
  • 移動(dòng)構(gòu)造函數(shù)
  • 移動(dòng)賦值運(yùn)算符

Rule of Zero

理想情況下,類不應(yīng)該自己管理資源,而是使用智能指針等RAII類,這樣編譯器生成的默認(rèn)函數(shù)就足夠了。

// Rule of Zero 示例
class GoodClass {
private:
    std::unique_ptr<int[]> data;  // 使用智能指針管理資源
    std::string name;             // 使用標(biāo)準(zhǔn)庫(kù)類
public:
    // 不需要定義析構(gòu)函數(shù)、拷貝/移動(dòng)構(gòu)造函數(shù)、拷貝/移動(dòng)賦值運(yùn)算符
    // 編譯器生成的默認(rèn)函數(shù)就足夠好
    GoodClass(const std::string& n) : name(n) {}
};

虛析構(gòu)函數(shù)

class Base {
public:
    Base() { std::cout << "Base constructor" << std::endl; }
    virtual ~Base() { std::cout << "Base destructor" << std::endl; }  // 虛析構(gòu)函數(shù)
};
class Derived : public Base {
public:
    Derived() { std::cout << "Derived constructor" << std::endl; }
    ~Derived() override { std::cout << "Derived destructor" << std::endl; }
};
// 使用
Base* ptr = new Derived();
delete ptr;  // 正確調(diào)用 Derived 的析構(gòu)函數(shù),因?yàn)橛刑撐鰳?gòu)函數(shù)

總結(jié)

  • 構(gòu)造函數(shù):對(duì)象創(chuàng)建時(shí)調(diào)用,用于初始化
  • 析構(gòu)函數(shù):對(duì)象銷毀時(shí)調(diào)用,用于清理資源
  • 重要規(guī)則
    • 使用初始化列表初始化成員
    • 管理資源的類需要遵循 Rule of Five
    • 基類應(yīng)該使用虛析構(gòu)函數(shù)
    • 優(yōu)先使用 Rule of Zero

構(gòu)造函數(shù)和析構(gòu)函數(shù)是C++中實(shí)現(xiàn)RAII(資源獲取即初始化)模式的基礎(chǔ),對(duì)于資源管理和異常安全至關(guān)重要。

c++中的構(gòu)造函數(shù),如果類比python語(yǔ)言的話,在python中相當(dāng)于什么?

C++ 構(gòu)造函數(shù)與 Python 的類比

基本對(duì)應(yīng)關(guān)系

C++ 概念Python 對(duì)應(yīng)說(shuō)明
構(gòu)造函數(shù)__init__ 方法對(duì)象初始化
析構(gòu)函數(shù)__del__ 方法對(duì)象清理
默認(rèn)構(gòu)造函數(shù)無(wú)參數(shù)的 __init__創(chuàng)建默認(rèn)對(duì)象
拷貝構(gòu)造函數(shù)__init__ + 手動(dòng)拷貝對(duì)象拷貝
移動(dòng)構(gòu)造函數(shù)無(wú)直接對(duì)應(yīng)Python 使用引用計(jì)數(shù)

詳細(xì)對(duì)比

1. 基本構(gòu)造函數(shù) ↔__init__方法

C++:

class Person {
private:
    std::string name;
    int age;
public:
    // 構(gòu)造函數(shù)
    Person(const std::string& n, int a) : name(n), age(a) {
        std::cout << "Person created: " << name << std::endl;
    }
};
// 使用
Person p("Alice", 25);

Python:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
        print(f"Person created: {self.name}")
# 使用
p = Person("Alice", 25)

2. 默認(rèn)構(gòu)造函數(shù) ↔ 無(wú)參數(shù)__init__

C++:

class MyClass {
public:
    MyClass() {
        std::cout << "Default constructor" << std::endl;
    }
};
MyClass obj;  // 調(diào)用默認(rèn)構(gòu)造函數(shù)

Python:

class MyClass:
    def __init__(self):
        print("Default constructor")
obj = MyClass()  # 調(diào)用 __init__

3. 析構(gòu)函數(shù) ↔__del__方法

C++:

class FileHandler {
private:
    FILE* file;
public:
    FileHandler(const char* filename) {
        file = fopen(filename, "r");
        std::cout << "File opened" << std::endl;
    }
    ~FileHandler() {
        if (file) {
            fclose(file);
            std::cout << "File closed" << std::endl;
        }
    }
};
// 自動(dòng)調(diào)用析構(gòu)函數(shù)
{
    FileHandler fh("test.txt");
    // 使用文件
} // 離開(kāi)作用域,自動(dòng)調(diào)用析構(gòu)函數(shù)

Python:

class FileHandler:
    def __init__(self, filename):
        self.file = open(filename, 'r')
        print("File opened")
    def __del__(self):
        if self.file:
            self.file.close()
            print("File closed")
# 使用(注意:Python的__del__調(diào)用時(shí)機(jī)不確定)
fh = FileHandler("test.txt")
# 當(dāng)對(duì)象被垃圾回收時(shí)調(diào)用 __del__

4. 拷貝行為對(duì)比

C++ 拷貝構(gòu)造函數(shù):

class Vector {
private:
    int* data;
    size_t size;
public:
    Vector(size_t s) : size(s) {
        data = new int[size];
    }
    // 拷貝構(gòu)造函數(shù)
    Vector(const Vector& other) : size(other.size) {
        data = new int[size];
        std::copy(other.data, other.data + size, data);
        std::cout << "Copy constructor called" << std::endl;
    }
    ~Vector() {
        delete[] data;
    }
};
Vector v1(10);
Vector v2 = v1;  // 調(diào)用拷貝構(gòu)造函數(shù)

Python 的拷貝行為:

class Vector:
    def __init__(self, size):
        self.size = size
        self.data = [0] * size
    # Python 沒(méi)有直接的拷貝構(gòu)造函數(shù)
    # 需要手動(dòng)實(shí)現(xiàn)或使用 copy 模塊
v1 = Vector(10)
v2 = v1  # 這只是引用賦值,兩個(gè)變量指向同一個(gè)對(duì)象
v3 = Vector(v1.size)  # 手動(dòng)創(chuàng)建新對(duì)象
v3.data = v1.data[:]  # 手動(dòng)拷貝數(shù)據(jù)
# 或者使用 copy 模塊
import copy
v4 = copy.deepcopy(v1)

重要差異

1. 內(nèi)存管理方式不同

C++ - 手動(dòng)管理,確定性析構(gòu):

{
    Person p("John", 30);  // 構(gòu)造函數(shù)調(diào)用
    // 使用 p
} // p 離開(kāi)作用域,析構(gòu)函數(shù)立即調(diào)用

Python - 自動(dòng)垃圾回收,非確定性析構(gòu):

def test():
    p = Person("John", 30)  # __init__ 調(diào)用
    # 使用 p
    # __del__ 可能在函數(shù)結(jié)束后調(diào)用,也可能不立即調(diào)用

2. 拷貝語(yǔ)義不同

C++ - 值語(yǔ)義,默認(rèn)深拷貝:

Vector v1(10);
Vector v2 = v1;  // 深拷貝,兩個(gè)獨(dú)立對(duì)象

Python - 引用語(yǔ)義,默認(rèn)淺拷貝:

v1 = Vector(10)
v2 = v1  # 引用拷貝,兩個(gè)變量指向同一個(gè)對(duì)象

3. 構(gòu)造方式不同

C++ - 多種構(gòu)造方式:

Person p1;              // 默認(rèn)構(gòu)造
Person p2("Alice", 25); // 直接構(gòu)造
Person p3 = p2;         // 拷貝構(gòu)造
Person p4 = Person("Bob", 30);  // 臨時(shí)對(duì)象 + 移動(dòng)構(gòu)造

Python - 統(tǒng)一使用 __init__

p1 = Person()           # 需要定義 __init__(self)
p2 = Person("Alice", 25)
p3 = p2                 # 引用賦值,不是拷貝
p4 = Person(p2.name, p2.age)  # 手動(dòng)創(chuàng)建新對(duì)象

Python 中模擬 C++ 構(gòu)造函數(shù)特性

模擬重載構(gòu)造函數(shù)

Python 使用默認(rèn)參數(shù)和類方法模擬:

class Date:
    def __init__(self, day=1, month=1, year=2000):
        self.day = day
        self.month = month
        self.year = year
    @classmethod
    def from_string(cls, date_str):
        """模擬重載構(gòu)造函數(shù) - 從字符串創(chuàng)建"""
        day, month, year = map(int, date_str.split('/'))
        return cls(day, month, year)
    @classmethod
    def from_timestamp(cls, timestamp):
        """模擬重載構(gòu)造函數(shù) - 從時(shí)間戳創(chuàng)建"""
        # 實(shí)現(xiàn)時(shí)間戳轉(zhuǎn)換邏輯
        return cls(1, 1, 2000)  # 簡(jiǎn)化示例
# 使用不同的"構(gòu)造函數(shù)"
d1 = Date()                    # 默認(rèn)構(gòu)造
d2 = Date(15, 12, 2023)       # 參數(shù)化構(gòu)造
d3 = Date.from_string("25/12/2023")  # 工廠方法
d4 = Date.from_timestamp(1700000000)

模擬 RAII (資源獲取即初始化)

Python 使用上下文管理器模擬:

# C++ RAII 風(fēng)格
class FileHandler:
    def __init__(self, filename, mode='r'):
        self.file = open(filename, mode)
        print(f"File {filename} opened")
    def __enter__(self):
        return self
    def __exit__(self, exc_type, exc_val, exc_tb):
        self.file.close()
        print("File closed")
    def read(self):
        return self.file.read()
# 使用(類似C++的確定性析構(gòu))
with FileHandler("test.txt") as fh:
    content = fh.read()
    # 離開(kāi) with 塊自動(dòng)關(guān)閉文件

實(shí)際示例對(duì)比

完整的類設(shè)計(jì)對(duì)比

C++:

class BankAccount {
private:
    std::string owner;
    double balance;
    static int accountCount;  // 靜態(tài)成員
public:
    // 構(gòu)造函數(shù)
    BankAccount(const std::string& name, double initialBalance = 0.0) 
        : owner(name), balance(initialBalance) {
        accountCount++;
        std::cout << "Account created for " << owner << std::endl;
    }
    // 拷貝構(gòu)造函數(shù)
    BankAccount(const BankAccount& other) 
        : owner(other.owner + " (copy)"), balance(other.balance) {
        accountCount++;
        std::cout << "Account copied" << std::endl;
    }
    // 析構(gòu)函數(shù)
    ~BankAccount() {
        accountCount--;
        std::cout << "Account for " << owner << " destroyed" << std::endl;
    }
    // 成員函數(shù)
    void deposit(double amount) {
        balance += amount;
    }
    static int getAccountCount() {
        return accountCount;
    }
};
int BankAccount::accountCount = 0;

Python:

class BankAccount:
    _account_count = 0  # 類變量(類似靜態(tài)成員)
    def __init__(self, name, initial_balance=0.0):
        self.owner = name
        self.balance = initial_balance
        BankAccount._account_count += 1
        print(f"Account created for {self.owner}")
    def __del__(self):
        BankAccount._account_count -= 1
        print(f"Account for {self.owner} destroyed")
    def deposit(self, amount):
        self.balance += amount
    @classmethod
    def get_account_count(cls):
        return cls._account_count
    # Python 沒(méi)有內(nèi)置的拷貝構(gòu)造,但可以添加一個(gè)方法
    @classmethod
    def from_existing(cls, existing_account, new_name):
        """模擬拷貝構(gòu)造"""
        new_account = cls(new_name, existing_account.balance)
        return new_account

總結(jié)

  • __init__ ≈ 構(gòu)造函數(shù):都用于對(duì)象初始化
  • __del__ ≈ 析構(gòu)函數(shù):都用于清理,但調(diào)用時(shí)機(jī)不同
  • 主要差異
    • C++ 有確定的構(gòu)造/析構(gòu)時(shí)機(jī),Python 依賴?yán)厥?/li>
    • C++ 默認(rèn)值語(yǔ)義,Python 默認(rèn)引用語(yǔ)義
    • C++ 支持構(gòu)造函數(shù)重載,Python 使用默認(rèn)參數(shù)和類方法模擬
    • C++ 有專門的拷貝/移動(dòng)構(gòu)造函數(shù),Python 需要手動(dòng)處理

理解這些差異有助于在兩種語(yǔ)言間轉(zhuǎn)換思維,但要注意它們的設(shè)計(jì)哲學(xué)和內(nèi)存管理機(jī)制有很大不同。

到此這篇關(guān)于C++ 構(gòu)造函數(shù)和析構(gòu)函數(shù)示例詳解的文章就介紹到這了,更多相關(guān)C++ 構(gòu)造函數(shù)和析構(gòu)函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++ virtual destructor虛擬析構(gòu)函數(shù)

    C++ virtual destructor虛擬析構(gòu)函數(shù)

    C++中基類采用virtual虛析構(gòu)函數(shù)是為了防止內(nèi)存泄漏。具體地說(shuō),如果派生類中申請(qǐng)了內(nèi)存空間,并在其析構(gòu)函數(shù)中對(duì)這些內(nèi)存空間進(jìn)行釋放,今天通過(guò)本文給大家介紹C++ virtual destructor虛擬析構(gòu)函數(shù)的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2021-05-05
  • 基于樹(shù)莓派實(shí)現(xiàn)播放MP3音樂(lè)

    基于樹(shù)莓派實(shí)現(xiàn)播放MP3音樂(lè)

    這篇文章主要為大家詳細(xì)介紹了基于樹(shù)莓派實(shí)現(xiàn)播放MP3音樂(lè),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • 最小生成樹(shù)算法C語(yǔ)言代碼實(shí)例

    最小生成樹(shù)算法C語(yǔ)言代碼實(shí)例

    這篇文章主要介紹了最小生成樹(shù)算法C語(yǔ)言代碼實(shí)例,有需要的朋友可以參考一下
    2013-12-12
  • C語(yǔ)言中冒泡排序算法詳解

    C語(yǔ)言中冒泡排序算法詳解

    大家好,本篇文章主要講的是C語(yǔ)言中冒泡排序算法詳解,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-01-01
  • 北郵考研復(fù)試C語(yǔ)言上機(jī)題目精選

    北郵考研復(fù)試C語(yǔ)言上機(jī)題目精選

    這篇文章主要介紹了北郵考研復(fù)試C語(yǔ)言上機(jī)題目精選,摘自2010年北郵CS的復(fù)試,需要的朋友可以參考下
    2015-08-08
  • C語(yǔ)言仿函數(shù)(Functor)實(shí)現(xiàn)示例

    C語(yǔ)言仿函數(shù)(Functor)實(shí)現(xiàn)示例

    本文檔介紹了在C語(yǔ)言中實(shí)現(xiàn)仿函數(shù)(Functor)的方法,仿函數(shù)是一種帶狀態(tài)的可調(diào)用對(duì)象,通過(guò)結(jié)構(gòu)體和函數(shù)指針的組合模擬C++中的仿函數(shù)特性,下面就來(lái)具體介紹一下如何使用
    2026-01-01
  • C++17之std::visit的具體使用

    C++17之std::visit的具體使用

    本文主要介紹了C++17之std::visit的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • C++實(shí)現(xiàn)String與UF8互轉(zhuǎn)

    C++實(shí)現(xiàn)String與UF8互轉(zhuǎn)

    這篇文章介紹了C++實(shí)現(xiàn)String與UF8互轉(zhuǎn)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • C語(yǔ)言每日練習(xí)之進(jìn)制轉(zhuǎn)換

    C語(yǔ)言每日練習(xí)之進(jìn)制轉(zhuǎn)換

    這篇文章主要介紹了C語(yǔ)言進(jìn)制轉(zhuǎn)換,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-11-11
  • C語(yǔ)言實(shí)現(xiàn)逆序輸出詳細(xì)

    C語(yǔ)言實(shí)現(xiàn)逆序輸出詳細(xì)

    這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)逆序輸出。主要實(shí)現(xiàn)C語(yǔ)言實(shí)現(xiàn)對(duì)數(shù)組元素依次賦值然后按照逆序輸出,下面文章小編將詳細(xì)解說(shuō),需要的朋友可以參考一下
    2021-10-10

最新評(píng)論

虎林市| 镇康县| 邵阳县| 阜城县| 兴文县| 卓尼县| 长子县| 卢湾区| 泉州市| 双牌县| 玛纳斯县| 博爱县| 钟祥市| 兴仁县| 博兴县| 红安县| 英吉沙县| 长沙县| 沽源县| 旌德县| 阳东县| 永平县| 彰化市| 介休市| 扎兰屯市| 贵溪市| 左云县| 阜新市| 辽阳县| 英吉沙县| 崇州市| 中山市| 库伦旗| 宣武区| 淳安县| 会昌县| 沛县| 肥东县| 长宁县| 临猗县| 芦山县|