c++基础知识

1. 概述

C++ 是一种面向对象的编程语言,它是 C 语言的扩展版,由 Bjarne Stroustrup 创造。与其他现有的编程语言相比,C++ 具有以下优点:

高效:C++ 是一种编译型语言,可以直接编译成机器码运行,因此执行效率高。

可移植性:可以在不同操作系统上编写代码,只需要在每个操作系统上进行编译即可。

丰富的数据类型:C++ 提供了丰富的数据类型,包括整型、浮点型、字符型等,同时还支持自定义的数据类型。

模块化编程:通过使用类和函数,可以将代码分解为多个模块,便于维护和扩展。

2. 基本语法

2.1. 变量

在 C++ 中,变量必须先定义,然后才能使用。定义变量时需要指定变量的类型和名称,例如:

int age = 18;

float temperature = 36.5;

char grade = 'A';

在上面的代码中,我们定义了三个变量:一个整型变量 age,一个浮点型变量 temperature,和一个字符型变量 grade。

除了基本数据类型之外,C++ 还支持自定义数据类型。例如,我们可以通过定义 struct 或 class 来定义一个新的数据类型:

struct Person {

std::string name;

int age;

};

Person p1 = {"Tom", 18};

在上面的代码中,我们定义了一个 Person 结构体,它由两个成员变量组成:一个字符串类型的 name 和一个整型类型的 age。我们还定义了一个 p1 变量,它的类型是 Person,并初始化了它的值。

2.2. 运算符

C++ 支持多种运算符,包括算术运算符、关系运算符、逻辑运算符等。下面是一些常用的运算符示例:

算术运算符:+-*/%(取模)。

关系运算符:==!=><>=<=

逻辑运算符:&&(与)、||(或)、!(非)。

除了上述运算符之外,C++ 还支持位运算符、赋值运算符、条件运算符等。具体可以参考相关文档。

2.3. 控制语句

C++ 支持各种流程控制语句,包括条件语句、循环语句和跳转语句。

2.3.1. 条件语句

条件语句包括 if 语句和 switch 语句。

if 语句的一般形式如下:

if (condition) {

// do something

}

其中,condition 是一个条件表达式,当它的值为 true 时执行代码块中的内容。if 语句还支持 else 和 else if 子句,例如:

if (condition1) {

// do something

} else if (condition2) {

// do something else

} else {

// do something else

}

switch 语句用于根据不同的值执行不同的操作。它的一般形式如下:

switch (expression) {

case value1:

// do something

break;

case value2:

// do something else

break;

default:

// do something else

}

其中,expression 是一个表达式。

2.3.2. 循环语句

循环语句包括 for、while 和 do-while 三种语句。

for 循环的一般形式如下:

for (initialization; condition; update) {

// do something

}

其中,initialization 是用来初始化变量的代码,condition 是用来检测的条件,update 是在每次循环后更新变量的代码。

while 循环和 do-while 循环的一般形式如下:

while (condition) {

// do something

}

do {

// do something

} while (condition);

2.3.3. 跳转语句

跳转语句包括 break、continue 和 goto 三种语句。

break 语句用于跳出循环。

continue 语句用于跳过循环中的某次迭代。

goto 语句用于跳转到程序中的标记语句。

3. 类和对象

在 C++ 中,类是一种用户自定义的类型,它由变量和函数组成。可以通过类来创建对象,对象是类的一个实例,它包含了类中所有的变量和函数。

3.1. 类的定义

定义一个类需要使用关键字 class,例如:

class Person {

public:

std::string name;

int age;

void sayHello() {

std::cout << "Hello, my name is " << name << "." << std::endl;

}

};

在上面的代码中,我们定义了一个 Person 类,它包含了两个成员变量:name 和 age,以及一个 sayHello 函数。

3.2. 对象的创建与使用

在 C++ 中,可以通过以下方式来创建一个对象:

Person p1;

p1.name = "Tom";

p1.age = 18;

p1.sayHello();

在上面的代码中,我们创建了一个 p1 对象,并设置了它的 name 和 age 属性,并调用了它的 sayHello 函数。

3.3. 访问控制

C++ 中可以使用 public、private 和 protected 三种访问修饰符来限制成员变量和成员函数的访问权限。

public:可以在类的内部和外部访问。

private:只能在类的内部访问。

protected:只能在类的内部和派生类(继承类)中访问。

以下是一个使用访问修饰符的示例:

class Rectangle {

private:

double width;

double height;

public:

Rectangle(double w, double h) {

width = w;

height = h;

}

double getArea() {

return width * height;

}

};

int main() {

Rectangle r1(2.0, 3.0);

std::cout << r1.getArea() << std::endl;

// std::cout << r1.width << std::endl; // error: 'width' is private

return 0;

}

在上面的代码中,我们定义了一个 Rectangle 类,它包含了 width 和 height 两个私有成员变量,以及构造函数和 getArea 函数。在 main 函数中,我们创建了一个 r1 对象,并调用了它的 getArea 函数。尝试访问 r1 的 width 属性会导致编译错误,因为该属性是私有的。

4. 异常处理

在编程中,有时候会出现错误或异常情况,此时可以使用异常处理机制。C++ 中使用 try-catch 块来处理异常。

4.1. 抛出异常

可以通过 throw 关键字来抛出一个异常,例如:

double divide(double x, double y)

{

if (y == 0) {

throw "Division by zero condition!";

}

return x / y;

}

在上面的代码中,我们定义了一个 divide 函数,当除数为 0 时会抛出一个类型为 const char* 的异常。

4.2. 捕获异常

可以通过 try-catch 块来捕获异常,例如:

try {

double result = divide(10.0, 0.0);

std::cout << result << std::endl;

}

catch (const char* msg) {

std::cerr << msg << std::endl;

}

在上面的代码中,我们尝试调用 divide 函数,如果函数抛出异常,我们就会捕获到它,并显示错误消息。

5. 总结

本文介绍了 C++ 的基础语法,包括变量、运算符、控制语句、类和对象、异常处理等内容。熟悉 C++ 的基础语法是编写高效、可维护的程序的必备基础。

后端开发标签