📅  最后修改于: 2023-12-03 15:41:58.401000             🧑  作者: Mango
C++ 是一种多范式编程语言,旨在支持系统级编程和大规模应用程序开发。C++ 具有高效性,可移植性和灵活性,因此被广泛用于操作系统,图形用户界面,游戏开发,Web 浏览器等领域。本文将介绍 C++ 的基础语法、面向对象编程、模板以及常用的标准库等内容。
C++ 中的变量必须先被声明,才能使用。例如:
int a; // 整型变量 a 的声明
a = 1; // 赋值
int b = 2; // 声明并初始化
C++ 支持的数据类型包括整型、浮点型、字符型、布尔型等。
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++;
}
函数是 C++ 程序的基本单位。一个函数包括函数名、参数列表、返回类型和函数体。
// 定义一个函数
int sum(int x, int y) {
return x + y;
}
// 调用一个函数
int z = sum(1, 2); // z = 3
C++ 支持面向对象编程,包括类和对象、继承和多态等概念。
一个类是一个模板,它定义了一个对象的属性和方法。对象是类的一个实例。
// 定义一个类
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.
继承是面向对象编程的重要概念之一。它允许一个类从另一个类继承属性和方法。
// 定义一个基类
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
多态性是面向对象编程的另一个重要概念。它允许一个对象以不同的方式呈现(表现出不同的行为)。
// 定义一个基类
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++ 中的模板是一种通用的编程机制,它允许编写通用的类或函数,以适应不同类型的输入。
类模板是一个通用的类定义,它允许使用不同类型的数据。
// 定义一个类模板
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"
函数模板是一个通用的函数定义,它允许使用不同类型的参数。
// 定义一个函数模板
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++ 编程中的核心部分,它定义了大量的类和函数,以便开发人员更容易地编写程序。
输入输出流是 C++ 标准库的重要部分。iostream 库提供了 cout,cin 和 cerr 对象,它们分别代表了标准输出、标准输入和标准错误输出。
// 输出到屏幕
cout << "Hello, world!" << endl;
// 从键盘读取输入
int n;
cin >> n;
C++ 标准库定义了 string 类,它提供了对字符串的基本操作。
// 定义一个字符串
string s = "Hello, world!";
// 字符串长度
s.length(); // 13
// 字符串连接
s += " Welcome";
cout << s << endl; // Hello, world! Welcome
容器是 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++ 初学者来说,这些内容是入门必备的。