继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

C++入门实战:从基础语法到项目实践

慕哥9229398
关注TA
已关注
手记 1270
粉丝 199
获赞 913

引言

C++,作为面向对象编程的强大力量,整合了C语言的基础与面向对象的特性,为软件开发提供了高效且灵活的手段。它广泛应用于操作系统、图形处理、游戏开发、网络编程等对性能有极高要求的领域。掌握C++不仅能够加强解决问题的技能,还能深入理解计算机底层运行机制。

C++基本语法入门

变量与数据类型

C++支持多种数据类型,包括整型、浮点型、字符型等。每种类型有其特定的存储大小及表示范围。

#include <iostream>

int main() {
    int age = 25;   // 整型变量
    float price = 99.99f; // 浮点型变量,'f'表示float类型
    char grade = 'A';    // 字符型变量
    bool isStudent = true; // 布尔型变量

    std::cout << "年龄: " << age << std::endl;
    std::cout << "价格: " << price << std::endl;
    std::cout << "等级: " << grade << std::endl;
    std::cout << "是否学生: " << isStudent << std::endl;

    return 0;
}

变量声明与赋值

在C++中,声明变量关键要指明类型与名称,并可通过赋值操作将值由内存的一个位置转移到另一位置。

float salary = 5000.0; // 声明并赋值
salary = 5500.0; // 重新赋值

控制结构

控制结构是程序流程控制的基础,包括条件语句(if,else)与循环语句(for,while)。

int number = 10;
if (number > 5) {
    std::cout << "number is greater than 5." << std::endl;
} else {
    std::cout << "number is not greater than 5." << std::endl;
}

int i = 0;
while (i < 10) {
    std::cout << "循环次数: " << i << std::endl;
    i++;
}

函数

函数封装特定任务,提高代码复用性和可读性。

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

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

指针与引用

指针概念

指针是内存地址的变量,通过它可以直接访问及操作内存中的数据。

int *ptr = &age; // 声明指针并指向age变量
std::cout << "通过指针访问age: " << *ptr << std::endl;

指针运算

指针可以执行加减操作,与数组索引类似。

int arr[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int *ptr = &arr[2]; // 指向arr的索引为2的元素(即值为2的元素)
std::cout << "元素值: " << *(ptr - 1) << std::endl; // 访问位置减去1的元素,即值为1的元素

引用的使用

引用是另一种指向变量的便捷方式,简化代码并提高效率。

int &ref = age; // 声明引用并绑定到age变量
ref = 30; // 通过ref修改age变量的值
std::cout << "通过引用访问age: " << age << std::endl;

类与对象

类的定义与实例化

类是对象的蓝图,包含属性和方法。

class Student {
public:
    int id;
    std::string name;
    void display() {
        std::cout << "ID: " << id << ", Name: " << name << std::endl;
    }
};

int main() {
    Student s1;
    s1.id = 101;
    s1.name = "Alice";
    s1.display();
    return 0;
}

成员函数

成员函数在类内部定义,用于操作类的属性。

class Student {
public:
    int id;
    std::string name;
    void display() {
        std::cout << "ID: " << id << ", Name: " << name << std::endl;
    }
    void setId(int newId) {
        id = newId;
    }
};

int main() {
    Student s1;
    s1.setId(102);
    s1.display();
    return 0;
}

构造函数与析构函数

构造函数在对象创建时执行,析构函数在对象销毁时执行。

class Student {
public:
    int id;
    std::string name;
    
    Student(int i, std::string n) {
        id = i;
        name = n;
    }
    
    ~Student() {
        std::cout << "销毁对象: " << id << std::endl;
    }
};

int main() {
    Student s1(103, "Bob");
    return 0;
}

面向对象编程(OOP)概念

C++中的封装、继承、多态是面向对象编程的核心概念。

实战案例

简单程序设计

实现一个简单的计算器程序,能够处理基本的加减乘除运算。

#include <iostream>

int main() {
    double a, b;
    char op;
    std::cout << "请输入第一个数: ";
    std::cin >> a;
    std::cout << "请输入操作符 (+, -, *, /): ";
    std::cin >> op;
    std::cout << "请输入第二个数: ";
    std::cin >> b;

    double result;
    switch (op) {
        case '+':
            result = a + b;
            break;
        case '-':
            result = a - b;
            break;
        case '*':
            result = a * b;
            break;
        case '/':
            if (b != 0) {
                result = a / b;
            } else {
                std::cout << "除数不能为零" << std::endl;
                return 1;
            }
            break;
        default:
            std::cout << "无效的操作符" << std::endl;
            return 1;
    }

    std::cout << "结果: " << result << std::endl;
    return 0;
}

类的复杂应用

设计一个基本的图形用户界面(GUI)程序,利用类与对象的概念进行实现。这里以控制台模拟的简单GUI为例。

#include <iostream>

class GUI {
public:
    void displayMenu() {
        std::cout << "请选择操作:" << std::endl;
        std::cout << "1. 加法" << std::endl;
        std::cout << "2. 减法" << std::endl;
        std::cout << "3. 退出" << std::endl;
    }

    int getInput() {
        int choice;
        std::cin >> choice;
        return choice;
    }

    void performOperation() {
        int a, b;
        char op;
        switch (getInput()) {
            case 1:
                std::cout << "请输入第一个数: ";
                std::cin >> a;
                std::cout << "请输入操作符 (+, -, *, /): ";
                std::cin >> op;
                std::cout << "请输入第二个数: ";
                std::cin >> b;
                switch (op) {
                    case '+':
                        std::cout << "结果: " << a + b << std::endl;
                        break;
                    case '-':
                        std::cout << "结果: " << a - b << std::endl;
                        break;
                    case '*':
                        std::cout << "结果: " << a * b << std::endl;
                        break;
                    case '/':
                        if (b != 0) {
                            std::cout << "结果: " << a / b << std::endl;
                        } else {
                            std::cout << "除数不能为零" << std::endl;
                        }
                        break;
                    default:
                        std::cout << "无效的操作符" << std::endl;
                }
                break;
            case 2:
                std::cout << "退出程序" << std::endl;
                break;
            default:
                std::cout << "无效的选择" << std::endl;
        }
    }
};

int main() {
    GUI gui;
    while (true) {
        gui.displayMenu();
        gui.performOperation();
        std::cout << std::endl;
    }
    return 0;
}

结语与扩展学习资源

学习C++是一个不断进步的过程,通过持续实践和阅读高质量的资料,可以深化理解和技能。推荐资源:

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP