手记

C++语法基础:快速入门指南

C++简介

C++ 是一种通用的、面向对象的编程语言,由 Bjarne Stroustrup 于1983年在贝尔实验室开发。它结合了C语言的兼容性与面向对象编程的灵活性,旨在提供高效、灵活的代码结构。随着版本的更新,C++添加了诸如智能指针、lambda函数、类模板等现代特性,使得语言更加强大且易于使用。

C++与C语言的关系

C++是C语言的扩展,继承了C语言的语法和大部分库函数。它引入了面向对象编程概念,如类、构造函数、析构函数、继承、封装和多态等。此外,C++支持泛型编程,允许创建可处理多种数据类型的模板代码。

C++的特点与应用领域

C++以其高效和灵活性被广泛应用于操作系统、游戏开发、图形用户界面、科学计算、嵌入式系统和服务器端编程等领域。它的高效性、低级操作控制以及强大的功能使其成为系统级程序设计的理想选择。

C++基本概念

变量与数据类型

C++中的变量是用于存储数据的容器,数据类型定义变量存储的值类型。常见的数据类型包括整型、浮点型、字符型等,此外还支持数组、结构体、类等复杂类型。

int age; // 定义整型变量 age
float salary = 5000.0f; // 定义浮点型变量 salary
char grade = 'A'; // 定义字符型变量 grade

int main() {
    int x = 10;
    float y = 3.14f;
    cout << "x: " << x << ", y: " << y << endl;
    return 0;
}

控制结构

控制结构用于控制程序流程,包括条件语句和循环语句。

条件语句

int main() {
    int num = 5;
    if (num > 0) {
        cout << "Number is positive." << endl;
    } else if (num < 0) {
        cout << "Number is negative." << endl;
    } else {
        cout << "Number is zero." << endl;
    }
    return 0;
}

循环语句

int main() {
    int i = 0;
    while (i < 5) {
        cout << "Iteration: " << i << endl;
        i++; // 自增操作
    }
    return 0;
}
函数

函数是一段执行特定任务的代码块,通过函数名、参数列表和函数体定义。

int add(int a, int b) {
    return a + b; // 定义加法函数
}

int main() {
    int result = add(3, 4);
    cout << "Result: " << result << endl;
    return 0;
}

指针与引用的区别与使用

指针和引用是C++中用于操作内存地址的工具:

int num = 10;
int *ptr = &num; // 指针 ptr 指向 num 的地址
int &ref = num; // 引用 ref 等同于 num,不能直接修改 num 的地址

int main() {
    cout << "num: " << num << ", *ptr: " << *ptr << endl;
    cout << "ref: " << ref << endl;
    return 0;
}
面向对象编程

面向对象编程是C++的核心特性,通过类封装数据和操作。

类的定义与成员变量

class Car {
public:
    int speed; // 公有成员变量
    void setSpeed(int s) {
        speed = s; // 设置速度的方法
    }
};

int main() {
    Car myCar;
    myCar.setSpeed(60);
    cout << "Speed: " << myCar.speed << endl;
    return 0;
}

构造函数与析构函数

构造函数在对象创建时初始化成员,而析构函数在对象销毁时执行清理。

class Car {
public:
    int speed;
    Car() { // 构造函数
        speed = 0;
    }
    ~Car() { // 析构函数
        cout << "Car deleted." << endl;
    }
};

int main() {
    Car myCar;
    return 0;
}
错误处理与调试

编译错误与运行时错误

C++程序可能在编译或运行时出现错误,通过异常处理和调试工具可以诊断和修复。

使用 try-catch 块进行异常处理

#include <iostream>
#include <stdexcept>

int divide(int a, int b) {
    if (b == 0) {
        throw std::runtime_error("Division by zero!"); // 抛出异常
    }
    return a / b;
}

int main() {
    try {
        int result = divide(10, 0);
        std::cout << "Result: " << result << std::endl;
    } catch (const std::exception& e) {
        std::cerr << "Error: " << e.what() << std::endl;
    }
    return 0;
}

日志与调试工具的使用

日志记录和调试工具如GDB和Visual Studio调试器帮助定位和解决程序错误。

案例分析与项目实例

项目实例和案例分析是理解C++概念的关键。例如,为增强代码的可读性和复用性,可以实现一个简单的C++程序,用于管理图书馆系统。

图书管理示例

图书类定义

class Book {
private:
    std::string title;
    std::string author;

public:
    Book(const std::string& t, const std::string& a) : title(t), author(a) {}

    void setTitle(const std::string& t) {
        title = t;
    }

    void setAuthor(const std::string& a) {
        author = a;
    }

    void displayInfo() {
        std::cout << "Title: " << title << ", Author: " << author << std::endl;
    }
};

图书管理系统代码

#include <iostream>
#include "Book.h"

int main() {
    Book book1("C++ Primer", "Stanley B. Lippman");
    book1.displayInfo();
    book1.setTitle("Effective C++");
    book1.displayInfo();
    return 0;
}

通过这样的实例,可以更深入地理解C++类和成员方法的使用,以及面向对象编程的实践应用。

0人推荐
随时随地看视频
慕课网APP