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

C++教程:入门到实践

慕妹3242003
关注TA
已关注
手记 248
粉丝 9
获赞 25
概述

本文提供了一套全面的C++教程,涵盖了从语言基础到高级特性的各个方面,包括开发环境搭建、基本语法、控制结构、函数、数组与指针以及面向对象编程。文章不仅介绍了C++的基本概念,还通过示例代码帮助读者理解和实践。通过学习本文,读者可以系统地掌握C++中的各个方面,从入门到实践。

C++教程:入门到实践
C++语言简介

C++是一种通用的编程语言,由Bjarne Stroustrup在1979年开始设计,并于1985年正式发布。作为一种静态类型、编译型语言,C++支持泛型编程、面向对象编程和过程化编程,广泛应用于系统软件、游戏开发、图形用户界面、浏览器、嵌入式系统、高级计算等领域。

C++语法在C语言的基础上进行了扩展,引入了面向对象的特性,如类、对象、继承、封装、多态等,使得代码更加模块化、易于维护和扩展。同时,它保留了C语言的高效性,能够在性能上有出色的表现。

C++有多个标准版本,包括早期的C++98/03和现在的C++11、C++14、C++17、C++20和C++23。每个新版本都引入了新的特性和改进,如lambda表达式、范围for循环、智能指针等,使得编程更加便捷和安全。

开发环境的搭建

Visual Studio

Visual Studio是Microsoft开发的一款集成开发环境(IDE),广泛应用于C++开发。以下是安装步骤:

  1. 访问Visual Studio官网,下载最新版本。
  2. 在安装过程中,选择包含C++的开发工作负载。
  3. 安装完成后,启动Visual Studio,并创建一个新的C++项目。
#include <iostream>

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

Code::Blocks

Code::Blocks是一款开源的跨平台IDE,支持多种编程语言,包括C++。以下是安装步骤:

  1. 访问Code::Blocks官网,下载最新版本。
  2. 运行下载的安装文件,根据提示完成安装。
  3. 安装完成后,启动Code::Blocks,并创建一个新的C++项目。
#include <iostream>

int main() {
    std::cout << "Hello, World!" << std::endl;
    return 0;
}
第一个C++程序

编写一个简单的“Hello, World!”程序,以验证开发环境是否搭建成功。

#include <iostream>

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

执行程序,如果成功显示“Hello, World!”,则环境搭建成功。

基础语法入门

数据类型与变量

C++提供了多种数据类型,包括整型、浮点型、字符型等。变量用于存储数据,可以声明为不同的类型。

常见数据类型

int a;     // 整型
float b;   // 浮点型
double c;  // 双精度浮点型
char d;    // 字符型
bool e;    // 布尔型

变量声明与初始化

int number = 42;       // 整型变量初始化
float pi = 3.14f;      // 浮点型变量初始化
double precision = 3.14159;  // 双精度浮点型变量初始化
char letter = 'A';     // 字符型变量初始化
bool flag = true;      // 布尔型变量初始化

运算符与表达式

C++支持多种运算符,包括算术运算符、关系运算符、逻辑运算符等。

算术运算符

int x = 5;
int y = 3;

int sum = x + y;    // 加法
int diff = x - y;   // 减法
int prod = x * y;   // 乘法
int quot = x / y;   // 除法
int rem = x % y;    // 取余

关系运算符

int a = 10;
int b = 20;

bool result1 = (a == b);       // 等于
bool result2 = (a != b);       // 不等于
bool result3 = (a < b);        // 小于
bool result4 = (a > b);        // 大于
bool result5 = (a <= b);       // 小于等于
bool result6 = (a >= b);       // 大于等于

逻辑运算符

bool x = true;
bool y = false;

bool result1 = (x && y);       // 逻辑与
bool result2 = (x || y);       // 逻辑或
bool result3 = (!x);           // 逻辑非

输入与输出

C++使用iostream库进行输入输出操作。cin用于输入,cout用于输出。

输入

#include <iostream>

int main() {
    int number;
    std::cout << "Enter a number: ";
    std::cin >> number;
    std::cout << "You entered: " << number << std::endl;
    return 0;
}

输出

#include <iostream>

int main() {
    int number = 42;
    std::cout << "The answer is: " << number << std::endl;
    return 0;
}

复杂输入与输出

#include <iostream>

int main() {
    int number1, number2;
    std::cout << "Enter two numbers: ";
    std::cin >> number1 >> number2;
    std::cout << "Sum: " << number1 + number2 << std::endl;
    std::cout << "Product: " << number1 * number2 << std::endl;
    return 0;
}
控制结构与循环

条件语句

C++提供了多种条件语句,包括ifelse ifelse语句。

单条件判断

#include <iostream>

int main() {
    int number = 10;
    if (number > 0) {
        std::cout << "Number is positive" << std::endl;
    }
    return 0;
}

复杂条件判断

#include <iostream>

int main() {
    int number = -5;
    if (number > 0) {
        std::cout << "Number is positive" << std::endl;
    } else if (number < 0) {
        std::cout << "Number is negative" << std::endl;
    } else {
        std::cout << "Number is zero" << std::endl;
    }
    return 0;
}

多层条件判断

#include <iostream>

int main() {
    int number = 0;
    if (number > 0) {
        std::cout << "Number is positive" << std::endl;
    } else if (number < 0) {
        std::cout << "Number is negative" << std::endl;
    } else {
        if (number % 2 == 0) {
            std::cout << "Number is zero and even" << std::endl;
        } else {
            std::cout << "Number is zero and odd" << std::endl;
        }
    }
    return 0;
}

循环语句

C++提供了三种循环语句:forwhiledo-while

for循环

#include <iostream>

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

while循环

#include <iostream>

int main() {
    int i = 0;
    while (i < 5) {
        std::cout << "Iteration: " << i << std::endl;
        i++;
    }
    return 0;
}

do-while循环

#include <iostream>

int main() {
    int i = 0;
    do {
        std::cout << "Iteration: " << i << std::endl;
        i++;
    } while (i < 5);
    return 0;
}

循环与条件语句的嵌套

#include <iostream>

int main() {
    for (int i = 0; i < 5; i++) {
        for (int j = 0; j < i; j++) {
            std::cout << "*";
        }
        std::cout << std::endl;
    }
    return 0;
}
函数与作用域

函数定义与调用

函数是C++中可重用的代码块。函数定义包括返回类型、函数名、参数列表和函数体。

简单函数定义

#include <iostream>

void greet() {
    std::cout << "Hello, world!" << std::endl;
}

函数调用

#include <iostream>

void greet() {
    std::cout << "Hello, world!" << std::endl;
}

int main() {
    greet();
    return 0;
}

参数传递与返回值

函数可以接受参数并返回值。

带参数和返回值的函数

#include <iostream>

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

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

递归函数示例

#include <iostream>

int factorial(int n) {
    if (n == 0) {
        return 1;
    } else {
        return n * factorial(n - 1);
    }
}

int main() {
    int n = 5;
    std::cout << "Factorial of " << n << " is " << factorial(n) << std::endl;
    return 0;
}

作用域与生命周期

作用域决定了变量的可见范围,生命周期决定了变量的生存时间。

局部变量与全局变量

#include <iostream>

int globalVar = 10;

void localFunction() {
    int localVar = 20;
    std::cout << "Local variable: " << localVar << std::endl;
}

int main() {
    std::cout << "Global variable: " << globalVar << std::endl;
    localFunction();
    return 0;
}

函数重载示例

#include <iostream>

void print(int n) {
    std::cout << "Integer: " << n << std::endl;
}

void print(double d) {
    std::cout << "Double: " << d << std::endl;
}

int main() {
    print(42);
    print(3.14);
    return 0;
}
数组与指针

数组的基本使用

数组是一种数据结构,用于存储一组相同类型的元素。

一维数组

#include <iostream>

int main() {
    int arr[5] = {1, 2, 3, 4, 5};
    for (int i = 0; i < 5; i++) {
        std::cout << "Element " << i << ": " << arr[i] << std::endl;
    }
    return 0;
}

多维数组

#include <iostream>

int main() {
    int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};
    for (int i = 0; i < 2; i++) {
        for (int j = 0; j < 3; j++) {
            std::cout << "Element [" << i << "][" << j << "]: " << arr[i][j] << std::endl;
        }
    }
    return 0;
}

动态数组

#include <iostream>
#include <new>

int main() {
    int *arr = new int[5]{1, 2, 3, 4, 5};
    for (int i = 0; i < 5; i++) {
        std::cout << "Element " << i << ": " << arr[i] << std::endl;
    }
    delete[] arr;
    return 0;
}

指针的概念与使用

指针是一种变量,用于存储内存地址。通过指针可以间接访问变量的值。

指针声明与初始化

#include <iostream>

int main() {
    int num = 10;
    int *ptr = &num;  // 声明并初始化指针,指向num
    std::cout << "Value: " << *ptr << std::endl;
    return 0;
}

通过指针修改变量

#include <iostream>

int main() {
    int num = 10;
    int *ptr = &num;
    *ptr = 20;  // 通过指针修改num的值
    std::cout << "New value: " << num << std::endl;
    return 0;
}

数组与指针的关系

在C++中,数组名可以被视为指向数组第一个元素的指针。

使用指针遍历数组

#include <iostream>

int main() {
    int arr[5] = {1, 2, 3, 4, 5};
    int *ptr = arr;  // 声明指针,指向数组第一个元素
    for (int i = 0; i < 5; i++) {
        std::cout << "Element " << i << ": " << *ptr << std::endl;
        ptr++;  // 指针移向下一个元素
    }
    return 0;
}
类与对象

类的定义与对象的创建

类是一种用户自定义的数据类型,通过类可以创建对象。类定义包括成员变量和成员函数。

简单类定义

#include <iostream>

class Circle {
public:
    double radius;
    void setRadius(double r) {
        radius = r;
    }
    double getArea() {
        return 3.14 * radius * radius;
    }
};

int main() {
    Circle c;
    c.setRadius(5);
    std::cout << "Area: " << c.getArea() << std::endl;
    return 0;
}

对象创建与使用

#include <iostream>

class Circle {
public:
    double radius;
    void setRadius(double r) {
        radius = r;
    }
    double getArea() {
        return 3.14 * radius * radius;
    }
};

int main() {
    Circle c;
    c.setRadius(5);
    std::cout << "Area: " << c.getArea() << std::endl;
    return 0;
}

成员变量与成员函数

类中的成员变量用于存储数据,成员函数用于操作这些数据。

成员变量与函数的使用

#include <iostream>

class Rectangle {
public:
    double width;
    double height;
    void setDimensions(double w, double h) {
        width = w;
        height = h;
    }
    double getArea() {
        return width * height;
    }
};

int main() {
    Rectangle r;
    r.setDimensions(10, 5);
    std::cout << "Area: " << r.getArea() << std::endl;
    return 0;
}

封装、继承与多态的基本概念

封装是将数据和操作数据的方法封装在一起,继承允许一个类继承另一个类的属性和方法,多态允许以统一的方式处理不同对象。

封装示例

#include <iostream>

class BankAccount {
protected:
    double balance;
public:
    void deposit(double amount) {
        balance += amount;
    }
    double getBalance() {
        return balance;
    }
};

class SavingsAccount : public BankAccount {
public:
    void calculateInterest() {
        double interest = balance * 0.05;
        deposit(interest);
    }
};

int main() {
    SavingsAccount sa;
    sa.deposit(1000);
    sa.calculateInterest();
    std::cout << "Balance: " << sa.getBalance() << std::endl;
    return 0;
}

继承示例

#include <iostream>

class Vehicle {
public:
    void start() {
        std::cout << "Starting vehicle." << std::endl;
    }
};

class Car : public Vehicle {
public:
    void start() {
        std::cout << "Starting car." << std::endl;
    }
};

int main() {
    Car car;
    car.start();  // 输出 "Starting car."
    return 0;
}

多态示例

#include <iostream>

class Animal {
public:
    virtual void makeSound() = 0;  // 虚函数,定义纯虚函数
};

class Dog : public Animal {
public:
    void makeSound() {
        std::cout << "Woof!" << std::endl;
    }
};

class Cat : public Animal {
public:
    void makeSound() {
        std::cout << "Meow!" << std::endl;
    }
};

int main() {
    Animal *dog = new Dog();
    Animal *cat = new Cat();

    dog->makeSound();  // 输出 "Woof!"
    cat->makeSound();  // 输出 "Meow!"

    delete dog;
    delete cat;
    return 0;
}

这些示例展示了C++编程的基本概念和实践,帮助你更好地理解和使用这门强大的编程语言。继续深入学习并实践,将使你能够更有效地开发复杂的C++应用程序。

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