读书笔记2-C++ Primer Plus(第二章完结)

发布时间:2024年01月01日

目录

?一、C++语句

输出语句

定义变量

if-else 条件语句

for 循环语句

函数定义语句

二、声明语句和变量

声明变量

初始化变量

多个变量的声明与初始化

extern 关键字

为什么变量必须声明?

赋值语句

基本赋值操作

多重赋值

复合赋值操作符

自增自减操作符

右值引用赋值

三、C++ 中的类

类的声明和定义

对象的创建和使用

构造函数和析构函数

静态成员

四、函数

函数的声明和定义

函数的调用

参数传递

函数重载:

函数返回值

递归函数

内联函数


C++是在C语言基础上开发的一种集面向对象编程(OOP)、通用编程和传统的过程化编程于一体的编程语言。本书是根据2003年的ISO/ANSI C++标准编写的,通过大量短小精悍的程序详细而全面地阐述了C++的基本概念和技术。

全书分17章和10个附录,分别介绍了C++程序的运行方式、基本数据类型、复合数据类型、循环和关系表达式、分支语句和逻辑操作符、函数重载和函数模板、内存模型和名称空间、类的设计和使用、多态、虚函数、动态内存分配、继承、代码重用、友元、异常处理技术、string类和标准模板库、输入/输出等内容。

?一、C++语句

C++ 语句的例子:

输出语句

  • std::cout << "Hello, World!" << std::endl;
    

    这个语句的作用是在控制台输出 "Hello, World!",并换行。

定义变量

  • int num = 10;
    

    这个语句的作用是定义一个名为 num 的整型变量,并初始化为 10。

if-else 条件语句

  • if (num > 0) {
        std::cout << "num is positive" << std::endl;
    } else if (num < 0) {
        std::cout << "num is negative" << std::endl;
    } else {
        std::cout << "num is zero" << std::endl;
    }
    

    这个语句的作用是根据 num 的值输出不同的信息。如果 num 大于 0,则输出 "num is positive",如果 num 小于 0,则输出 "num is negative",否则输出 "num is zero"。

for 循环语句

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

    这个语句的作用是循环输出从 0 到 9 的数字。

函数定义语句

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

这个语句的作用是定义一个名为 add 的函数,它接受两个整型参数 a 和 b,并返回它们的和。

二、声明语句和变量

在 C++ 中,声明语句用于告诉编译器变量或函数的名称和类型,但不分配内存空间,变量则是用来存储数据的内存区域。以下是关于声明语句和变量的一些基本知识:

声明变量

我们可以使用以下语法来声明变量:

type variable_name;

其中,type 表示变量的数据类型,variable_name 表示变量的名称。例如:

  • int x;          // 声明一个整型变量 x
    double y;       // 声明一个双精度浮点数变量 y
    char z;         // 声明一个字符型变量 z
    bool flag;      // 声明一个布尔型变量 flag
    

初始化变量

变量声明后,我们可以使用以下语法对变量进行初始化:

type variable_name = value;

其中,value 表示变量的初始值。例如:

  • int x = 5;              // 声明并初始化一个整型变量 x
    double y = 3.14;        // 声明并初始化一个双精度浮点数变量 y
    char z = 'a';           // 声明并初始化一个字符型变量 z
    bool flag = true;       // 声明并初始化一个布尔型变量 flag
    

多个变量的声明与初始化

我们可以在同一行中声明多个相同类型的变量或初始化多个变量。例如:

  • int a, b, c;            // 声明三个整型变量 a, b, c
    int x = 1, y = 2, z = 3; // 声明并初始化三个整型变量 x, y, z
    

extern 关键字

如果我们在一个源文件中声明一个变量,然后在另一个源文件中使用该变量,需要在使用的源文件中使用 extern 关键字声明该变量。例如:

// file1.cpp
int x = 10;             // 声明并初始化一个整型变量 x

// file2.cpp
extern int x;          // 声明变量 x,表示 x 是在其他源文件中定义的
int y = x + 5;         // 使用变量 x 的值进行计算

在上述代码中,我们在 file1.cpp 中声明并初始化了一个整型变量 x,然后在 file2.cpp 中使用该变量,因此需要使用 extern 关键字在 file2.cpp 中声明该变量。

为什么变量必须声明?

在 C++ 中,变量必须先声明后使用。这是因为变量是用来存储数据的内存区域,编译器需要知道该变量的名称、类型以及占用的内存空间大小等信息,才能够在程序运行时正确地分配内存空间,以便存储数据。如果在使用变量之前没有进行声明,那么编译器就无法知道该变量的信息,也就无法分配内存空间,程序就会出现错误。

另外,变量的声明还可以帮助程序员更好地理解代码,避免出现一些难以发现的错误。例如,在大型程序中,如果没有对每个变量进行明确的声明,就可能会出现多个变量使用同一个名称的情况,这会导致程序的行为不可预期,难以排查错误。

因此,在 C++ 中,变量必须先进行声明后使用,这是为了保证程序的正确性和可读性。

赋值语句

在 C++ 中,赋值语句用于将一个值赋给变量。赋值语句使用赋值操作符 "=" 来表示。以下是关于赋值语句的基本知识:

基本赋值操作

最常见的赋值操作是将一个值赋给一个变量。例如:

  • int x;        // 声明一个整型变量 x
    x = 5;        // 将值 5 赋给变量 x
    

多重赋值

C++ 支持同时对多个变量进行赋值。

例如:

  • int a, b, c;
    a = b = c = 10;    // 将值 10 赋给变量 a, b, c
    

复合赋值操作符

C++ 还提供了一些复合赋值操作符,可以将赋值与其他运算符结合起来。例如

  • int x = 5;
    x += 3;       // 等价于 x = x + 3,将 x 的值加上 3 并赋给 x
    x -= 2;       // 等价于 x = x - 2,将 x 的值减去 2 并赋给 x
    x *= 4;       // 等价于 x = x * 4,将 x 的值乘以 4 并赋给 x
    x /= 2;       // 等价于 x = x / 2,将 x 的值除以 2 并赋给 x
    

自增自减操作符

C++ 还提供了自增和自减操作符,可以方便地对变量进行加一或减一的操作。例如:

  • int x = 5;
    x++;           // 将 x 的值加一
    x--;           // 将 x 的值减一
    

右值引用赋值

在 C++11 中,还引入了右值引用(Rvalue reference)和移动语义(Move semantics),使得对于临时对象等右值能够进行高效的赋值操作。

例如:

int x = 5;
int&& y = std::move(x);    // 将 x 的值移动给 y

以上是关于赋值语句的基本知识,通过赋值语句,我们可以将一个值赋给一个变量,或者进行复合赋值操作,使得程序可以进行数据的存储和处理。

三、C++ 中的类

是一种用户定义的数据类型,用于封装数据和相关的操作。类提供了一种面向对象的编程方式,通过定义成员变量和成员函数,可以创建具有特定属性和行为的对象。

以下是关于 C++ 类的基本知识:

类的声明和定义

类的声明包含在头文件(.h 或 .hpp)中,用于描述类的名称、成员变量和成员函数的原型。类的定义则包含在源文件(.cpp)中,用于实现成员函数的具体代码。例如:

  • // MyClass.h
    
    class MyClass {
    private:
        int myVariable;
    
    public:
        void setMyVariable(int value);
        int getMyVariable();
    };
    
    // MyClass.cpp
    
    void MyClass::setMyVariable(int value) {
        myVariable = value;
    }
    
    int MyClass::getMyVariable() {
        return myVariable;
    }
    

对象的创建和使用

  • 通过类可以创建对象,对象是类的实例化结果。使用类名和构造函数可以创建对象。例如:

  • MyClass obj;          // 创建 MyClass 类的对象 obj
    obj.setMyVariable(42); // 使用对象的成员函数进行操作
    int value = obj.getMyVariable(); // 使用对象的成员函数获取数据
    
  • 成员变量和成员函数: 类中的成员变量用于存储对象的数据,成员函数用于操作和处理数据。成员变量和成员函数可以分为私有(private)、公有(public)和保护(protected)三种访问权限。例如:

  • class MyClass {
    private:
        int privateVariable;     // 私有成员变量
    
    public:
        int publicVariable;      // 公有成员变量
    
    private:
        void privateFunction();  // 私有成员函数
    
    public:
        void publicFunction();   // 公有成员函数
    };
    

构造函数和析构函数

  • 类可以定义构造函数和析构函数,构造函数在对象创建时被调用,用于初始化对象的数据;析构函数在对象销毁时被调用,用于释放对象占用的资源。例如:

  • class MyClass {
    public:
        MyClass();          // 构造函数的声明
    
        ~MyClass();         // 析构函数的声明
    };
    
    MyClass::MyClass() {
        // 构造函数的定义
    }
    
    MyClass::~MyClass() {
        // 析构函数的定义
    }
    

静态成员

  • 类中还可以定义静态成员,静态成员属于类本身而不是对象,可以在不创建对象的情况下直接访问。例如:

  1. class MyClass {
    public:
        static int staticVariable;     // 静态成员变量
    
    public:
        static void staticFunction();  // 静态成员函数
    };
    
    int MyClass::staticVariable = 0;   // 静态成员变量的定义和初始化
    
    void MyClass::staticFunction() {
        // 静态成员函数的定义
    }
    

以上是关于 C++ 类的基本知识,通过类可以定义对象和操作数据,实现更加灵活和模块化的程序设计。

四、函数

C++ 函数是一段可重用的代码块,用于执行特定的任务。函数可以接受参数、执行操作,并返回一个值(或者可以是 void 类型,即不返回任何值)。

以下是关于 C++ 函数的基本知识:

函数的声明和定义

函数的声明包含在函数原型中,用于描述函数的名称、参数列表和返回类型。函数的定义则包含在源文件中,用于实现函数的具体代码。例如:

  • // 函数的声明
    int sum(int a, int b);
    
    // 函数的定义
    int sum(int a, int b) {
        return a + b;
    }
    

函数的调用

  • 函数可以通过函数名和传递给函数的参数来调用。例如:

  • int result = sum(3, 4);   // 调用 sum 函数,并将返回值赋给 result
    

参数传递

  • 函数可以接受参数,参数用于向函数传递数据。参数可以是值传递、引用传递或指针传递。例如:

  • // 值传递
    int square(int num) {
        return num * num;
    }
    
    // 引用传递
    void swap(int& a, int& b) {
        int temp = a;
        a = b;
        b = temp;
    }
    
    // 指针传递
    void increment(int* num) {
        (*num)++;
    }
    

函数重载:

  • C++ 支持函数重载,即可以有多个同名的函数,但它们的参数个数、类型或顺序必须不同。编译器根据传递给函数的参数决定调用哪个函数。例如:

  • int sum(int a, int b) {
        return a + b;
    }
    
    float sum(float a, float b) {
        return a + b;
    }
    

函数返回值

  • 函数可以返回一个值,返回值的类型在函数声明和定义中指定。如果函数不返回任何值,可以使用 void 类型。例如:

  • int square(int num) {
        return num * num;
    }
    
    void printHello() {
        cout << "Hello!" << endl;
    }
    

递归函数

  • C++ 函数可以是递归的,即函数内部调用自身。递归函数通常需要有一个终止条件,以避免无限递归。例如:

  • // 计算阶乘
    int factorial(int n) {
        if (n == 0 || n == 1) {
            return 1;
        } else {
            return n * factorial(n - 1);
        }
    }
    

内联函数

  • C++ 提供了内联函数(inline function),它们在编译时会被直接插入到调用点处,而不是通过函数调用来执行。内联函数适用于简单且频繁调用的函数。例如:

inline int square(int num) {
    return num * num;
}

?第二章完结

?前一章节读书笔记1-C++ Primer Plus-CSDN博客文章浏览阅读365次,点赞8次,收藏12次。C++是在C语言基础上开发的一种集面向对象编程(OOP)、通用编程和传统的过程化编程于一体的编程语言。本书是根据2003年的ISO/ANSI C++标准编写的,通过大量短小精悍的程序详细而全面地阐述了C++的基本概念和技术。https://blog.csdn.net/m0_62338174/article/details/135320494?spm=1001.2014.3001.5501

文章来源:https://blog.csdn.net/m0_62338174/article/details/135321978
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。