📜  通过 c++ (1)

📅  最后修改于: 2023-12-03 15:41:58.401000             🧑  作者: Mango

通过 C++ 编程

C++ 是一种多范式编程语言,旨在支持系统级编程和大规模应用程序开发。C++ 具有高效性,可移植性和灵活性,因此被广泛用于操作系统,图形用户界面,游戏开发,Web 浏览器等领域。本文将介绍 C++ 的基础语法、面向对象编程、模板以及常用的标准库等内容。

基础语法
1. 变量和数据类型

C++ 中的变量必须先被声明,才能使用。例如:

int a; // 整型变量 a 的声明
a = 1; // 赋值
int b = 2; // 声明并初始化

C++ 支持的数据类型包括整型、浮点型、字符型、布尔型等。

2. 控制结构

C++ 中的控制结构包括循环和条件语句。

// if 语句
if (a > b) {
    // do something
} else if (a == b) {
    // do something
} else {
    // do something
}

// for 循环
for (int i = 0; i < 5; i++) {
    // do something
}

// while 循环
while (i < 5) {
    // do something
    i++;
}
3. 函数

函数是 C++ 程序的基本单位。一个函数包括函数名、参数列表、返回类型和函数体。

// 定义一个函数
int sum(int x, int y) {
    return x + y;
}

// 调用一个函数
int z = sum(1, 2); // z = 3
面向对象编程

C++ 支持面向对象编程,包括类和对象、继承和多态等概念。

1. 类和对象

一个类是一个模板,它定义了一个对象的属性和方法。对象是类的一个实例。

// 定义一个类
class Person {
public:
    string name;
    int age;

    void sayHello() {
        cout << "Hello, my name is " << name << ". I'm " << age << " years old." << endl;
    }
};

// 创建一个对象
Person p;
p.name = "Tom";
p.age = 20;
p.sayHello(); // Hello, my name is Tom. I'm 20 years old.
2. 继承

继承是面向对象编程的重要概念之一。它允许一个类从另一个类继承属性和方法。

// 定义一个基类
class Shape {
public:
    int x, y;

    void draw() {
        // draw a shape
    }
};

// 定义一个派生类
class Circle : public Shape {
public:
    int radius;

    void draw() {
        // draw a circle
    }
};

// 使用一个派生类
Circle c;
c.x = 0;
c.y = 0;
c.radius = 5;
c.draw(); // draw a circle
3. 多态性

多态性是面向对象编程的另一个重要概念。它允许一个对象以不同的方式呈现(表现出不同的行为)。

// 定义一个基类
class Animal {
public:
    virtual void makeSound() {
        cout << "Animal sound" << endl;
    }
};

// 定义一个派生类
class Cat : public Animal {
public:
    void makeSound() {
        cout << "Meow" << endl;
    }
};

class Dog : public Animal {
public:
    void makeSound() {
        cout << "Woof" << endl;
    }
};

// 使用多态性
Animal* a;
a = new Cat();
a->makeSound(); // Meow

a = new Dog();
a->makeSound(); // Woof
模板

C++ 中的模板是一种通用的编程机制,它允许编写通用的类或函数,以适应不同类型的输入。

1. 类模板

类模板是一个通用的类定义,它允许使用不同类型的数据。

// 定义一个类模板
template <typename T>
class Array {
private:
    T* data;
    int size;
public:
    Array(int s) {
        data = new T[s];
        size = s;
    }
    ~Array() {
        delete [] data;
    }
    void set(int i, T value) {
        data[i] = value;
    }
    T get(int i) {
        return data[i];
    }
};

// 使用类模板
Array<int> a(10);
a.set(0, 1);
a.get(0); // 1

Array<string> b(10);
b.set(0, "Hello");
b.get(0); // "Hello"
2. 函数模板

函数模板是一个通用的函数定义,它允许使用不同类型的参数。

// 定义一个函数模板
template <typename T>
T max(T x, T y) {
    return x > y ? x : y;
}

// 使用函数模板
int a = max(1, 2); // 2

string b = max("abc", "def"); // "def"
常用的标准库

C++ 标准库是 C++ 编程中的核心部分,它定义了大量的类和函数,以便开发人员更容易地编写程序。

1. 输入输出流

输入输出流是 C++ 标准库的重要部分。iostream 库提供了 cout,cin 和 cerr 对象,它们分别代表了标准输出、标准输入和标准错误输出。

// 输出到屏幕
cout << "Hello, world!" << endl;

// 从键盘读取输入
int n;
cin >> n;
2. 字符串处理

C++ 标准库定义了 string 类,它提供了对字符串的基本操作。

// 定义一个字符串
string s = "Hello, world!";

// 字符串长度
s.length(); // 13

// 字符串连接
s += " Welcome";
cout << s << endl; // Hello, world! Welcome
3. 容器

容器是 C++ 标准库中的另一个重要部分。它定义了许多容器类,例如 vector,list 和 map,它们是用于存储数据的通用数据结构,并提供了一些常用的操作方法。

// 定义一个 vector
vector<int> v;

// 添加元素
v.push_back(1);
v.push_back(2);
v.push_back(3);

// 遍历 vector
for (auto i : v) {
    cout << i << endl;
}

以上就是 C++ 的基础语法、面向对象编程、模板以及常用的标准库的介绍。对于 C++ 初学者来说,这些内容是入门必备的。