C++ 编程学习所需掌握的单词和语法句子

一、基本关键字(单词)

1. 数据类型相关

int含义

用于声明整数类型的变量。

示例

int age;  // 声明一个名为 age 的整数变量age = 25; // 给 age 变量赋值为 25

理解:int 就像是一个容器,专门用来存放整数,在这个例子中,age 这个容器被用来存放代表年龄的整数 25。

float 和 double

含义

float 用于声明单精度浮点数变量,double 用于声明双精度浮点数变量,浮点数可以表示小数。

示例

float price = 9.99f;  // 声明一个单精度浮点数变量 price 并初始化为 9.99double pi = 3.1415926; // 声明一个双精度浮点数变量 pi 并初始化为 3.1415926

理解:float 和 double 也是容器,但它们可以存放带有小数的数字。float 的精度相对较低,而 double 的精度更高,能表示更精确的小数。

char

含义

用于声明字符类型的变量。

示例char grade ='A'; // 声明一个字符变量 grade 并初始化为字符 'A'

理解:char 容器只能存放一个字符,这里 grade 存放了代表成绩等级的字符 'A'。

bool

含义

用于声明布尔类型的变量,布尔类型只有两个值:true 和 false。

示例

bool  isStudent = true;// 声明一个布尔变量 isStudent 并初始化为 true

理解

bool 变量就像一个开关,只有开(true)和关(false)两种状态,这里 isStudent 表示是否是学生,值为 true 表示是学生。

2. 控制结构相关

if、else

含义

if 用于条件判断,如果条件为真,则执行 if 后面的代码块;else 用于 if 条件不成立时执行的代码块。

示例

int score = 85;if(score >=60){    std::cout <<"及格了"<< std::endl;}else{    std::cout <<"不及格"<< std::endl;}

理解:程序先判断 score 是否大于等于 60,如果是,则输出 “及格了”;如果不是,则执行 else 后面的代码,输出 “不及格”。

for

含义

用于创建循环,让一段代码重复执行一定的次数。

示例

for (int i = 0; i < 5; i++) {    std::cout << i << std::endl;}

理解

for 循环有三个部分,初始化部分 int i = 0 声明并初始化一个循环变量 i;条件部分 i < 5 表示只要 i 小于 5,就会继续执行循环体;迭代部分 i++ 表示每次循环结束后,i 的值加 1。所以这个循环会依次输出 0 到 4。

while

含义

只要指定的条件为真,就会一直执行循环体中的代码。

示例

int num = 0;while (num < 3) {    std::cout << num << std::endl;    num++;}

理解:程序先判断 num 是否小于 3,如果是,则执行循环体中的代码,输出 num 的值并将 num 加 1,然后再次判断条件,直到条件不成立为止。

do-while

含义

与 while 循环类似,但 do-while 循环会先执行一次循环体,然后再判断条件。

示例

int count = 0;do {    std::cout << count << std::endl;    count++;} while (count < 2);

理解

无论条件是否成立,do 后面的代码块都会先执行一次,然后再判断 while 后面的条件,如果条件为真,则继续循环,否则结束循环。

3. 函数相关

void

含义

表示函数没有返回值。

示例

void printHello() {    std::cout << "Hello!" << std::endl;}

理解:printHello 函数的作用是输出 “Hello!”,它不需要返回任何值,所以返回类型为 void。

return

含义

用于从函数中返回一个值,并结束函数的执行。

int add(int a, int b) {    return a + b;}

理解

add 函数接受两个整数参数 a 和 b,将它们相加后通过 return 语句返回相加的结果。

二、常用语法句子

1. 变量声明与初始化

int number = 10; // 声明一个整数变量 number 并初始化为 10

理解

这是一种常见的变量声明和初始化方式,先指定变量的类型 int,然后给变量命名 number,最后用 = 给变量赋初始值 10。

2. 函数定义

int multiply(int x, int y) {    return x * y;}

理解

这是一个函数定义,int 表示函数的返回类型,multiply 是函数名,(int x, int y) 是函数的参数列表,包含两个整数参数 x 和 y,函数体中使用 return 语句返回 x 和 y 的乘积。

3. 类定义

class Rectangle {private:    int length;    int width;public:    Rectangle(int l,int w){        length = l;        width = w;    }    intarea(){        return length * width;    }};

理解

class 关键字用于定义一个类,这里定义了一个名为 Rectangle 的类。private 部分的成员变量 length 和 width 只能在类的内部访问;public 部分包含一个构造函数 Rectangle(int l, int w) 用于初始化对象的成员变量,还有一个成员函数 area() 用于计算矩形的面积。

三、标准库相关单词和语法

1. std 命名空间

含义

C++ 标准库中的所有标识符都定义在 std 命名空间中。

示例

#include <iostream>int main() {    std::cout << "Hello, World!" << std::endl;    return 0;}

理解

std::cout 是标准输出流对象,std::endl 用于换行,通过 std:: 前缀来访问 std 命名空间中的标识符。

2. 包含头文件

示例

#include <vector>

理解

#include 是预处理指令,用于将指定的头文件包含到当前源文件中。#include <vector> 表示包含 C++ 标准库中的 vector 头文件,这样就可以使用 std::vector 容器了。

四、内存管理相关关键字和语法

1. new 和 delete

关键字含义new

用于在堆上动态分配内存,并返回指向该内存的指针。

delete

用于释放 new 分配的内存,防止内存泄漏。

示例代码

#include <iostream>intmain(){    // 使用 new 动态分配一个整数的内存    int* ptr =newint;    *ptr =10;    std::cout <<"Value: "<<*ptr << std::endl;    // 使用 delete 释放内存    delete ptr;    return0;}

理解方式

在上述代码中,new int 会在堆上分配一个足够存储整数的内存块,并返回该内存块的起始地址,这个地址被赋值给指针 ptr。通过 *ptr = 10 可以向该内存块写入值。

当不再需要这块内存时,使用 delete ptr 释放它。如果不释放,这块内存将一直被占用,直到程序结束,造成内存泄漏。

2. new[] 和 delete[]

关键字含义new[]

用于在堆上动态分配数组内存。

delete[]

用于释放 new[] 分配的数组内存。

示例代码

#include <iostream>intmain(){    // 使用 new[] 动态分配一个包含 5 个整数的数组    int* arr =newint[5];    for(int i =0; i <5;++i){        arr[i]= i;    }    for(int i =0; i <5;++i){        std::cout << arr[i]<<" ";    }    std::cout << std::endl;    // 使用 delete[] 释放数组内存    delete[] arr;    return0;}

理解方式

new int[5]

 会在堆上分配一块足够存储 5 个整数的连续内存块,并返回该内存块的起始地址给指针 arr。

通过循环可以给数组元素赋值并输出。使用 delete[] arr 来释放整个数组的内存,要注意必须使用 delete[] 而不是 delete,否则会导致未定义行为。

五、继承与多态相关关键字和语法

1. class 与继承

关键字含义

在 C++ 中,class 不仅可以定义独立的类,还能用于实现类之间的继承关系。

示例代码

#include <iostream>// 基类classShape{public:    virtualvoiddraw(){        std::cout <<"Drawing a shape."<< std::endl;    }};// 派生类classCircle:public Shape{public:    voiddraw()override{        std::cout <<"Drawing a circle."<< std::endl;    }};intmain(){    Shape* shapePtr =newCircle();    shapePtr->draw();    delete shapePtr;    return0;}

理解方式

定义了一个基类 Shape 和一个派生类 Circle,Circle 通过 : public Shape 表示它继承自 Shape 类。

Shape

 类中的 draw 函数被声明为 virtual,表示这是一个虚函数。Circle 类中的 draw 函数使用 override 关键字,明确表示它重写了基类的虚函数。

在 main 函数中,创建了一个 Circle 对象,并使用基类指针 shapePtr 指向它,调用 draw 函数时,会根据对象的实际类型(Circle)调用相应的函数,这就是多态的体现。

2. virtual 和 override

关键字含义virtual

用于声明虚函数,使得在通过基类指针或引用调用该函数时,能够根据对象的实际类型来决定调用哪个版本的函数。

override

用于派生类中重写基类的虚函数,编译器会检查是否真的重写了基类的虚函数,如果没有则会报错。

示例代码可参考上述继承示例

理解方式virtual

 关键字为多态机制奠定了基础,它允许在运行时根据对象的实际类型来选择合适的函数实现。

override

 关键字提高了代码的可读性和安全性,确保派生类正确地重写了基类的虚函数,避免因函数名拼写错误等问题导致的意外行为。

六、模板相关关键字和语法

1. template

关键字含义template

 用于定义模板,模板是 C++ 实现泛型编程的重要工具,它可以让我们编写与类型无关的代码。

示例代码(函数模板)

#include <iostream>template<typenameT>T max(T a, T b){    return(a > b)? a : b;}intmain(){    int intMax =max(10,20);    double doubleMax =max(3.14,2.71);    std::cout <<"Max int: "<< intMax << std::endl;    std::cout <<"Max double: "<< doubleMax << std::endl;    return0;}

理解方式template <typename T>

 声明了一个模板参数 T,T 可以代表任意类型。在 max 函数中,使用 T 作为参数类型和返回类型,这样函数就可以处理不同类型的数据。

在 main 函数中,分别调用 max 函数处理整数和双精度浮点数,编译器会根据实际传入的参数类型自动实例化出相应的函数版本。

2. 类模板

示例代码

#include <iostream>template<typenameT>classContainer{private:    T value;public:    Container(T val):value(val){}    T getValue(){        return value;    }};intmain(){    Container<int>intContainer(100);    Container<double>doubleContainer(3.14);    std::cout <<"Int value: "<< intContainer.getValue()<< std::endl;    std::cout <<"Double value: "<< doubleContainer.getValue()<< std::endl;    return0;}

理解方式

定义了一个类模板 Container,它有一个模板参数 T,类中使用 T 作为成员变量和函数返回值的类型。

在 main 函数中,通过 Container<int> 和 Container<double> 分别实例化出处理整数和双精度浮点数的类对象,这样就可以用同一个类模板处理不同类型的数据。

七、异常处理相关关键字和语法

1. try、catch 和 throw

关键字含义

try用于包裹可能会抛出异常的代码块。

catch用于捕获并处理 try块中抛出的异常。

throw用于抛出异常。

示例代码

#include <iostream>doubledivide(double a,double b){    if(b ==0){        throw"Division by zero!";    }    return a / b;}intmain(){    try{        double result =divide(10,0);        std::cout <<"Result: "<< result << std::endl;    }catch(constchar* msg){        std::cerr <<"Error: "<< msg << std::endl;    }    return0;}

理解方式

在 divide 函数中,如果除数 b 为 0,则使用 throw 抛出一个字符串异常。

在 main 函数中,try 块中调用 divide 函数,当抛出异常时,程序会跳转到相应的 catch 块中,这里捕获的是 const char* 类型的异常,并输出错误信息。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容