一、C++基础语法
C++是一种多范式的编程语言,支持面向过程、面向对象、泛型等多种编程范式。下面我们从基本语法和常用数据类型入手,来详细阐述C++的入门内容。
1. C++的基本语法
#include <iostream> using namespace std; int main() { // 这是一个注释,不会影响程序运行 cout <<"Hello world!"<< endl; return 0; }
2. 常用数据类型
int a = 10; double b = 3.14; char c = 'a'; bool d = true;
3. 流程控制语句
int a = 10; if (a > 5) { cout <<"a is greater than 5"<< endl; } else { cout <<"a is less than or equal to 5"<< endl; } for (int i = 0; i < 10; i++) { cout <<<"\t"; } while (a > 0) { cout <<<"\t"; a--; }
二、面向对象编程
面向对象是C++的最大特色,C++中支持类、对象、继承、多态等重要的面向对象概念。下面我们以一个计算器程序为例,来详细介绍面向对象的用法。
1. 类和对象
class Calculator { public: int add(int a, int b) { return a + b; } int minus(int a, int b) { return a - b; } }; int main() { Calculator calc; int a = 10, b = 5; cout <<"a + b = "<< calc.add(a, b)<< endl; cout <<"a - b = "<< calc.minus(a, b)<< endl; return 0; }
2. 继承和多态
class Animal { public: virtual void sound() = 0; }; class Dog : public Animal { public: virtual void sound() { cout <<"Wang Wang!"<< endl; } }; class Cat : public Animal { public: virtual void sound() { cout <<"Miao Miao!"<< endl; } }; int main() { Animal *pAnimal = new Dog(); pAnimal->sound(); pAnimal = new Cat(); pAnimal->sound(); return 0; }
三、C++ STL
STL(Standard Template Library)是C++的标准库,包含了常用的容器、算法和迭代器等。STL提供了封装性、泛型性和可移植性,是C++编程中不可或缺的部分。
1. 容器
#include <vector> vector<int> v; v.push_back(1); v.push_back(2); v.push_back(3); for (vector<int>::iterator it = v.begin(); it != v.end(); it++) { cout <<*it<<"\t"; }
2. 算法
#include <algorithm> vector<int> v; v.push_back(1); v.push_back(2); v.push_back(3); cout <<"sum: "<< accumulate(v.begin(), v.end(), 0)<< endl; reverse(v.begin(), v.end()); for (vector<int>::iterator it = v.begin(); it != v.end(); it++) { cout <<*it<<"\t"; }
四、高级特性
除了基本语法、面向对象和STL,C++还有一些高级特性值得我们深入学习,如Lambda表达式、多线程编程和常用的异常处理等。
1. Lambda表达式
int main() { int a = 10; auto f = [a](int b) -> int { return a + b; }; cout <<< endl; return 0; }
2. 多线程编程
#include <thread> void print(int x) { for (int i = 0; i < 10; i++) { cout <<<"\t"; } } int main() { thread t1(print, 1); thread t2(print, 2); t1.join(); t2.join(); return 0; }
3. 异常处理
int main() { try { int a = 10, b = 0; if (b == 0) { throw "divide by zero"; } cout < 参考文献: - 参考教材:C++ Primer Plus, 6th Edition.