📜  翻译 - C++ (1)

📅  最后修改于: 2023-12-03 14:57:04.709000             🧑  作者: Mango

翻译 - C++

C++ 是一种高级编程语言,最初由 Bjarne Stroustrup 在1983年所设计,它是 C 语言的扩展,并支持面向对象编程。

特性
  • 丰富的数据类型:包括基本类型、结构体、类、枚举等。
  • 对象导向编程:支持类、继承、多态等等。
  • 泛型编程:支持模板,可以实现通用算法。
  • 内存管理:可以手动管理内存,也可以使用智能指针等工具来管理内存。
  • 强大的标准库:标准库中包含了很多常用的函数和类,可以让开发变得更加高效。
Hello World
#include <iostream>

int main() {
    std::cout << "Hello, World!";
    return 0;
}

以上是 C++ 的经典入门示例,它会输出 "Hello, World!"。其中,std::cout 代表标准输出流,<< 用于输出字符串,return 0 用于表示程序成功退出。

数据类型

C++ 支持的基本数据类型包括 int, float, double, char 等等,这些类型和 C 语言中的基本类型相同。此外,C++ 还支持引用类型、指针类型、复合类型等。例如:

int x = 10; // 定义一个整型变量
double y = 1.23; // 定义一个双精度浮点数变量
int& z = x; // 定义一个整型引用,指向 x 变量
int* p = &x; // 定义一个整型指针,指向 x 变量
对象导向编程

C++ 的对象导向编程支持类、继承、多态等特性。类是 C++ 中最基本的语言构造,它用于封装数据和函数。例如:

// 定义一个人类
class Person {
public:
    void sayHello() {
        std::cout << "Hello, I am a person!";
    }
};

int main() {
    // 创建一个人类对象
    Person p;
    // 调用对象的方法
    p.sayHello();
    return 0;
}

继承是 C++ 中实现代码复用的一种机制,它可以让派生类从基类中继承属性和行为。例如:

class Student : public Person {
public:
    void study() {
        std::cout << "I am studying!";
    }
};

int main() {
    // 创建一个学生对象
    Student s;
    // 调用对象的方法
    s.sayHello();
    s.study();
    return 0;
}

多态是 C++ 中面向对象编程的重要特性之一。它可以让不同的派生类对象对同一个消息进行响应,并且根据对象类型的不同,采取不同的行为。例如:

class Animal {
public:
    virtual void sound() {
        std::cout << "I am an animal!";
    }
};

class Cat : public Animal {
public:
    void sound() {
        std::cout << "I am a cat!";
    }
};

class Dog : public Animal {
public:
    void sound() {
        std::cout << "I am a dog!";
    }
};

int main() {
    // 创建动物对象
    Animal *a1 = new Cat();
    Animal *a2 = new Dog();
    // 调用对象的方法
    a1->sound();
    a2->sound();
    return 0;
}
泛型编程

C++ 中的泛型编程是通过模板实现的,它可以让程序员编写通用的代码,从而实现更高效的开发。

例如,下面是一个使用模板实现的快速排序算法:

template <typename T>
void quicksort(T* arr, int start, int end) {
    if (start < end) {
        int left = start;
        int right = end;
        T pivot = arr[(start + end) / 2];
        while (left <= right) {
            while (arr[left] < pivot) left++;
            while (arr[right] > pivot) right--;
            if (left <= right) {
                std::swap(arr[left], arr[right]);
                left++;
                right--;
            }
        }
        quicksort(arr, start, right);
        quicksort(arr, left, end);
    }
}

int main() {
    int arr[] = { 5 , 9 , 1 , 0 , 6 , 7 , 8 , 4 , 2 , 3 };
    int n = sizeof(arr) / sizeof(arr[0]);
    quicksort(arr, 0, n - 1);
    for (int i = 0; i < n; i++) {
        std::cout << arr[i] << " ";
    }
    std::cout << std::endl;
    return 0;
}
标准库

C++ 中的标准库包含了很多常用的类和函数,可以让开发变得更加高效。

例如,下面是一个使用标准库中的 vector 类实现的基本操作示例:

#include <vector>
#include <iostream>

int main() {
    std::vector<int> v; // 定义一个整型向量
    v.push_back(1); // 在末尾添加元素
    v.push_back(2);
    v.push_back(3);
    v.pop_back(); // 删除末尾元素
    std::cout << "Size: " << v.size() << std::endl; // 获取向量大小
    std::cout << "Capacity: " << v.capacity() << std::endl; // 获取向量容量
    std::cout << "Elements:";
    for (int i = 0; i < v.size(); i++) { // 遍历向量
        std::cout << " " << v[i];
    }
    std::cout << std::endl;
    return 0;
}
总结

C++ 是一门功能非常强大的编程语言,它支持对象导向编程、泛型编程等先进特性,并且拥有丰富的标准库,可以让开发变得更加高效。但是,C++ 也是一门复杂的语言,初学者需要耐心学习并且多加练习。