为了账号安全,请及时绑定邮箱和手机立即绑定

Linux C++编程入门教程

标签:
Linux C++
概述

本文介绍了在Linux环境下搭建C++开发环境的全过程,包括安装Linux操作系统、配置必要的开发工具以及设置合适的开发环境。文中详细讲解了如何在Ubuntu上安装GCC编译器,并演示了如何使用gVim、VSCode等编辑器。此外,还涵盖了C++的基础语法和面向对象编程概念,以及如何在Linux下编写和运行简单的C++程序。全文围绕关键词Linux C++展开,旨在帮助读者快速入门并掌握相关技能。

Linux环境搭建

安装Linux操作系统

在开始之前,你需要一台安装了Linux操作系统的计算机。Linux有多个发行版,常见的有Ubuntu、Fedora、CentOS等。这里以Ubuntu为例进行说明。

  1. 下载Ubuntu镜像:首先到Ubuntu官方网站下载Ubuntu的镜像文件。
  2. 选择安装方式:可以使用虚拟机(如VirtualBox、VMware)安装,或者直接在物理机上安装。
  3. 安装Ubuntu
    • 在虚拟机或物理机上启动安装程序。
    • 选择语言和键盘布局。
    • 选择安装类型(如“安装Ubuntu”)。
    • 分配磁盘空间,选择安装位置。
    • 按照向导提示完成安装。

安装必要的开发工具(如GCC编译器)

为了编译C++程序,你需要安装GCC(GNU Compiler Collection)和其他开发工具。

  1. 打开终端。
  2. 更新软件包列表:
    sudo apt-get update
  3. 安装GCC和G++(C++编译器):
    sudo apt-get install build-essential

设置开发环境(如编辑器配置)

开发环境推荐使用gVim、Vim、VSCode或Sublime Text等编辑器。

  • 安装gVim

    sudo apt-get install vim-gtk
  • 安装VSCode
    1. 打开终端,下载VSCode的安装包:
      wget https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64
    2. 安装VSCode:
      sudo dpkg -i code_*_amd64.deb

C++基础语法回顾

数据类型与变量

在C++中,变量用于存储数据。C++提供了多种数据类型,包括整型、浮点型、字符型等。

整型

  • int:整数(默认是32位)
  • short:短整数(16位)
  • long:长整数(64位)

浮点型

  • float:单精度浮点数
  • double:双精度浮点数

字符型

  • char:字符(通常是8位)
#include <iostream>

int main() {
    int a = 10;
    short b = 20;
    long c = 30;
    float d = 2.5;
    double e = 3.14;
    char f = 'a';

    std::cout << "整型: " << a << std::endl;
    std::cout << "短整型: " << b << std::endl;
    std::cout << "长整型: " << c << std::endl;
    std::cout << "浮点型: " << d << std::endl;
    std::cout << "双精度浮点型: " << e << std::endl;
    std::cout << "字符型: " << f << std::endl;

    return 0;
}

控制结构(条件语句和循环)

C++中的控制结构包括条件语句(if-else)和循环(for、while、do-while)。

条件语句

  • if:判断条件是否为真。
  • if-else:提供两个分支的选择。
  • switch:多路分支选择。
#include <iostream>

int main() {
    int x = 10;

    if (x > 5) {
        std::cout << "x > 5" << std::endl;
    } else {
        std::cout << "x <= 5" << std::endl;
    }

    int y = 7;
    switch (y) {
        case 5:
            std::cout << "y = 5" << std::endl;
            break;
        case 7:
            std::cout << "y = 7" << std::endl;
            break;
        default:
            std::cout << "y 不是5或7" << std::endl;
            break;
    }

    return 0;
}

循环

  • for:适用于已知循环次数的情况。
  • while:适用于未知循环次数的情况。
  • do-while:类似于while,但至少执行一次循环。
#include <iostream>

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

    int j = 0;
    while (j < 5) {
        std::cout << "while 循环: " << j << std::endl;
        j++;
    }

    int k = 0;
    do {
        std::cout << "do-while 循环: " << k << std::endl;
        k++;
    } while (k < 5);

    return 0;
}

函数和数组

函数用于封装代码逻辑,提高代码复用性。数组用于存储一组相同类型的变量。

函数

  • 函数定义:return_type function_name(parameters) { ... }
  • 函数调用:function_name(args)
#include <iostream>

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

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

数组

  • 一维数组:type array_name[size];
  • 多维数组:type array_name[row][col];
#include <iostream>

int main() {
    int arr[5] = {1, 2, 3, 4, 5};

    for (int i = 0; i < 5; i++) {
        std::cout << "数组元素: " << arr[i] << std::endl;
    }

    int mat[2][3] = {
        {1, 2, 3},
        {4, 5, 6}
    };

    for (int i = 0; i < 2; i++) {
        for (int j = 0; j < 3; j++) {
            std::cout << "二维数组: " << mat[i][j] << std::endl;
        }
    }

    return 0;
}

基本的输入输出操作

C++提供了标准输入输出流,即std::cinstd::cout,用于读取和输出数据。

#include <iostream>

int main() {
    int num;
    std::cout << "请输入一个整数: ";
    std::cin >> num;
    std::cout << "你输入的整数是: " << num << std::endl;

    std::cout << "请输入两个整数: ";
    int a, b;
    std::cin >> a >> b;
    std::cout << "你输入的两个整数是: " << a << " 和 " << b << std::endl;

    return 0;
}

在Linux下编写第一个C++程序

创建并编辑源代码文件

  1. 打开终端。
  2. 创建一个新的文本文件:
    touch hello.cpp
  3. 使用你喜欢的编辑器打开文件:
    vim hello.cpp
  4. 编写以下代码:

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

使用命令行编译C++程序

  1. 转到包含源代码文件的目录。
  2. 使用g++编译源代码:
    g++ -o hello hello.cpp

    这会生成一个名为hello的可执行文件。

运行程序并查看输出

  1. 运行生成的可执行文件:
    ./hello
  2. 查看输出:
    Hello, world!

常见Linux命令与开发工具介绍

常用Linux命令(如ls, cd, mkdir, rm等)

  • ls:列出文件和目录。
  • cd:更改目录。
  • mkdir:创建目录。
  • rm:删除文件或目录。
# 列出当前目录下的文件和目录
ls

# 更改到/home/user目录
cd /home/user

# 创建一个名为newdir的目录
mkdir newdir

# 删除一个名为file的文件
rm file

使用版本控制系统(如Git)

Git是一个分布式版本控制系统,用于跟踪文件的更改。

  1. 安装Git
    sudo apt-get install git
  2. 初始化Git仓库
    git init
  3. 创建新文件并添加到仓库
    echo "Hello, world!" > hello.txt
    git add hello.txt
  4. 提交更改
    git commit -m "添加hello.txt"
  5. 查看提交历史
    git log

调试工具(如GDB)

GDB(GNU Debugger)是一个强大的调试工具,用于跟踪程序的执行。

  1. 安装GDB
    sudo apt-get install gdb
  2. 编译程序时启用调试信息
    g++ -o hello hello.cpp -g
  3. 使用GDB启动程序
    gdb ./hello
  4. 设置断点
    break main
  5. 运行程序
    run
  6. 查看变量值
    print i

C++面向对象编程入门

类和对象的概念

在面向对象编程中,类是对一组对象的抽象描述,对象是类的具体实例。

#include <iostream>

class Person {
public:
    std::string name;
    int age;

    void introduce() {
        std::cout << "我叫" << name << ",今年" << age << "岁。" << std::endl;
    }
};

int main() {
    Person person1;
    person1.name = "张三";
    person1.age = 20;
    person1.introduce();

    return 0;
}

成员变量与成员函数

成员变量用于存储数据,成员函数用于实现功能。

#include <iostream>

class Rectangle {
public:
    int length;
    int width;

    int area() {
        return length * width;
    }
};

int main() {
    Rectangle rect;
    rect.length = 10;
    rect.width = 5;
    std::cout << "矩形的面积是: " << rect.area() << std::endl;

    return 0;
}

继承与多态

继承用于创建类层次结构,子类从父类继承属性和方法。多态是指使用基类类型来表示不同的类对象。

#include <iostream>

class Shape {
public:
    virtual void area() = 0;
};

class Rectangle : public Shape {
public:
    int length;
    int width;

    void area() override {
        std::cout << "矩形的面积是: " << length * width << std::endl;
    }
};

class Circle : public Shape {
public:
    int radius;

    void area() override {
        std::cout << "圆的面积是: " << 3.14 * radius * radius << std::endl;
    }
};

int main() {
    Rectangle rect;
    rect.length = 10;
    rect.width = 5;
    rect.area();

    Circle circle;
    circle.radius = 3;
    circle.area();

    return 0;
}

标准模板库(STL)简介

STL(Standard Template Library)提供了丰富的容器(如vector、list)和算法(如sort、find)。

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> numbers = {10, 20, 30, 40, 50};

    std::sort(numbers.begin(), numbers.end());

    for (int num : numbers) {
        std::cout << num << " ";
    }
    std::cout << std::endl;

    std::vector<int>::iterator it = std::find(numbers.begin(), numbers.end(), 30);
    if (it != numbers.end()) {
        std::cout << "找到30了" << std::endl;
    } else {
        std::cout << "没找到30" << std::endl;
    }

    return 0;
}

编写简单的C++应用程序

文件操作

C++提供了文件操作函数,如ifstreamofstream

#include <iostream>
#include <fstream>

int main() {
    std::ofstream file("output.txt");
    file << "Hello, world!" << std::endl;
    file.close();

    std::ifstream inputFile("output.txt");
    std::string content;
    while (std::getline(inputFile, content)) {
        std::cout << content << std::endl;
    }
    inputFile.close();

    return 0;
}

简单的图形界面程序开发(如使用Qt框架)

Qt是一个跨平台的图形用户界面库。

  1. 安装Qt
    sudo apt-get install qt5-default
  2. 创建一个简单的Qt应用程序
    使用Qt Creator创建一个新项目,选择“Qt Widgets Application”。
#include <QApplication>
#include <QWidget>
#include <QPushButton>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    QWidget window;
    QPushButton *button = new QPushButton("Hello, Qt", &window);
    window.setWindowTitle("Hello, Qt");
    window.show();

    return app.exec();
}
  1. 编译并运行程序
    使用Qt Creator的构建和运行功能来编译和运行程序。

实现用户交互

用户交互可以通过命令行或图形用户界面实现。

命令行用户交互

#include <iostream>

int main() {
    std::cout << "请输入你的名字: ";
    std::string name;
    std::cin >> name;
    std::cout << "你好," << name << "!" << std::endl;

    return 0;
}

图形用户界面用户交互
继续使用以上Qt的简单图形界面程序,增加更多的交互功能,如按钮点击事件等。

#include <QApplication>
#include <QWidget>
#include <QPushButton>
#include <QVBoxLayout>
#include <QLabel>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    QWidget window;
    QPushButton *button = new QPushButton("Hello, Qt", &window);
    QLabel *label = new QLabel("点击按钮", &window);

    QVBoxLayout *layout = new QVBoxLayout;
    layout->addWidget(label);
    layout->addWidget(button);
    window.setLayout(layout);

    QObject::connect(button, &QPushButton::clicked, label, &QLabel::setText, "按钮被点击了");
    window.setWindowTitle("Hello, Qt");
    window.show();

    return app.exec();
}

通过以上的步骤和示例,你可以熟悉在Linux环境中编写和运行C++程序,以及一些基本的开发工具和面向对象编程的概念。希望这些内容能够帮助你顺利入门Linux下的C++编程。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消