一、基本语法
C语言是一门基于C语言的编程语言,因此C的基本语法与C语言相似,主要包括以下几个方面:
1. 数据类型
C++的数据类型可以分为基本数据类型和衍生数据类型两种。其中,基本数据类型包括整型、浮点型、字符型、布尔型和空类型,衍生数据类型包括数组、指针、结构体、共用体和枚举类型。
//示例代码:定义一个整型变量和一个指向整型变量的指针
int num = 10;
int *ptr = #
2. 控制语句
C++的控制语句包括顺序结构、分支结构和循环结构。其中,常用的分支结构有if语句和switch语句,常用的循环结构有while循环、do-while循环和for循环。
//示例代码:使用for循环输出1~10的数字
for(int i=1; i<=10; i++)
{
cout << i << endl;
}
3. 函数
在C++中,可以通过定义函数来实现代码的复用。函数的定义包括函数类型、函数名、参数列表和函数体,其中参数列表可以为空,函数体可以返回一个值。
//示例代码:定义一个函数,返回两个数的和
int sum(int a, int b)
{
return a + b;
}
二、面向对象编程
C++是一门面向对象编程的语言,支持封装、继承和多态等特性。
1. 封装
封装是C++面向对象编程中的一个重要特性,它可以将数据和操作数据的函数封装在一起,实现数据的保护和隐藏,避免数据的不合法访问。
//示例代码:定义一个封装了数据和访问函数的类
class Student {
private:
string name;
int age;
public:
string getName() {
return name;
}
void setName(string n) {
name = n;
}
int getAge() {
return age;
}
void setAge(int a) {
age = a;
}
};
2. 继承
继承是C++面向对象编程的另一个重要特性,它可以通过建立类之间的继承关系,实现代码的重用和灵活性的提高。
//示例代码:定义一个继承自Student类的Undergraduate类
class Undergraduate: public Student {
private:
string major;
public:
string getMajor() {
return major;
}
void setMajor(string m) {
major = m;
}
};
3. 多态
多态是C++面向对象编程的另一个重要特性,它可以实现函数的重载和虚函数的运行时绑定,提高程序的灵活性和可扩展性。
//示例代码1:实现函数的重载
int sum(int a, int b)
{
return a + b;
}
double sum(double a, double b)
{
return a + b;
}
//示例代码2:定义一个含有虚函数的类
class Shape {
public:
virtual double area() {
return 0;
}
};
class Circle: public Shape {
private:
double r;
public:
Circle(double radius): r(radius) {}
virtual double area() {
return r * r * 3.14;
}
};
class Rectangle: public Shape {
private:
double x, y;
public:
Rectangle(double a, double b): x(a), y(b) {}
virtual double area() {
return x * y;
}
};
三、STL库
STL(Standard Template Library)是C++标准库中的一个重要组成部分,提供了许多功能强大的容器类和算法,可以大大提高程序开发的效率。
1. 容器类
容器类是STL库中的一个重要概念,包括vector、list、map等多种类型,每种类型都有自己的特点和适用范围。
//示例代码:定义一个vector容器,并将元素插入其中
vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
2. 算法
算法是STL库中的另一个重要概念,包括排序、查找、复制、统计等多种操作,可以轻松实现对容器的操作。
//示例代码:使用算法对vector容器进行排序
vector<int> v;
v.push_back(3);
v.push_back(2);
v.push_back(1);
sort(v.begin(), v.end());
四、文件操作
C++支持对文件进行读写操作,可以实现对外部文件的读取和写入。
1. 文件读取
文件读取是C++操作文件的一种常用方式,可以打开文件并读取其中的内容。
//示例代码:打开文件,并读取其中的内容
ifstream in("test.txt");
if (!in.is_open()) {
cout << "Open file failed!" << endl;
} else {
string s;
while (getline(in, s)) {
cout << s << endl;
}
in.close();
}
2. 文件写入
文件写入是C++操作文件的另一种常用方式,可以打开文件并将内容写入其中。
//示例代码:打开文件,并将内容写入其中
ofstream out("test.txt", ofstream::app);
if (!out.is_open()) {
cout << "Open file failed!" << endl;
} else {
out << "hello world!";
out.close();
}
五、异常处理
C++支持异常处理机制,可以通过捕获异常和抛出异常来处理程序中出现的异常情况。
1. 捕获异常
捕获异常是C++中对异常进行处理的一种方法,可以通过try-catch语句捕获可能发生异常的代码块,并进行处理。
//示例代码:捕获异常并进行处理
try {
int a, b;
cin >> a >> b;
if (b == 0) {
throw "Divisor can not be zero!";
} else {
cout << a / b << endl;
}
} catch (const char* e) {
cout << e << endl;
}
2. 抛出异常
抛出异常是C++中对异常进行处理的另一种方法,可以通过throw语句抛出异常,并在程序的其他位置进行处理。
//示例代码:抛出异常并在另一个函数中进行处理
int divide(int a, int b) {
if (b == 0) {
throw "Divisor can not be zero!";
} else {
return a / b;
}
}
int main() {
try {
int a, b;
cin >> a >> b;
cout << divide(a, b) << endl;
} catch (const char* e) {
cout << e << endl;
}
}