当前位置: 首页 > article >正文

C++基础系列【2】C++基本语法

本文作为入门文档,简要介绍C++的非常基本的语法,后面章节会详细介绍C++的各个语法。

C++ 程序结构

C++程序的基本结构包括头文件、命名空间、类和函数等。

下面我们通过Hello,World来展示这些元素。

#include <iostream> // 包含标准输入输出流库
using namespace std; // 使用标准命名空间,避免每次调用标准库时都要加std::前缀

int main() {
    cout << "Hello, World!" << endl; // 输出Hello, World!到控制台
    return 0; // 返回0表示程序正常结束
}

详解

  1. 头文件#include <iostream> 指令包含了标准输入输出流库,通过它,程序可以使用 coutcin 等对象。
  2. 命名空间using namespace std; 使得在程序中可以直接使用 std 命名空间中的名字函数,而不需要每次都加上 std:: 前缀。这是为了方便,但在大型项目中,为了避免命名冲突,通常会显式地使用命名空间前缀。
  3. 主函数int main() 是程序的入口点,程序从这里开始执行。main 函数可以返回一个整数,通常返回 0 表示程序正常结束,返回非零值表示出现错误或异常情况。
  4. 输出语句cout << "Hello, World!" << endl; 使用 cout 对象向控制台输出字符串,endl 用于插入换行符并刷新输出缓冲区

类与对象

我们都知道,C++是一种支持面向对象的编程语言,类(class)是C++中最重要的概念之一,通过类可以定义对象的属性和行为。

示例代码

#include <iostream>
using namespace std;

class Dog {
private:
    string name;
    int age;

public:
    // 构造函数
    Dog(string dogName, int dogAge) : name(dogName), age(dogAge) {}

    // 成员函数,用于输出狗的信息
    void printInfo() {
        cout << "Dog name: " << name << ", Age: " << age << endl;
    }
};

int main() {
    Dog myDog("Buddy", 5); // 创建一个Dog对象
    myDog.printInfo(); // 调用成员函数输出信息
    return 0;
}

详解

  1. 类定义class Dog 定义了一个名为 Dog 的类。
  2. 私有成员private: 部分定义了类的私有成员变量 nameage。这些变量只能在类内部访问和修改。
  3. 公有成员public: 部分定义了类的公有成员函数 printInfo() 和构造函数 Dog(string dogName, int dogAge)。构造函数用于初始化对象的状态,创建类对象时,会自动调用对应的构造函数。
  4. 对象创建Dog myDog("Buddy", 5); 创建了一个 Dog 类的对象 myDog,并使用构造函数初始化了它的 nameage 属性。
  5. 成员函数调用myDog.printInfo(); 调用了 myDog 对象的 printInfo() 成员函数,输出对象的信息。

函数与变量

函数封装代码块,它可以接收参数并返回结果。变量用于存储数据,可以是基本数据类型(如 intfloatchar 等),也可以是我们自定义的类型(如类)。

示例代码

#include <iostream>
using namespace std;

// 函数声明
int add(int a, int b);

int main() {
    int x = 10, y = 20;
    int sum = add(x, y); // 调用函数并存储结果
    cout << "Sum: " << sum << endl; // 输出结果
    return 0;
}

// 函数定义
int add(int a, int b) {
    return a + b; // 返回两个整数的和
}

详解

  1. 函数声明:在 main 函数之前声明了 add 函数,这告诉编译器 add 函数的存在,以便在 main 函数中调用它。
  2. 变量声明与初始化:在 main 函数中声明并初始化了两个整数变量 xy
  3. 函数调用int sum = add(x, y); 调用了 add 函数,并将返回值赋给变量 sum
  4. 函数定义:在 main 函数之后定义了 add 函数,它接收两个整数参数并返回它们的和。

高级特性

C++ 提供了许多高级特性,如模板、异常处理、STL(标准库)等,这些特性极大地增强了 C++ 的灵活性。

通过模板,程序员可以编写与类型无关的代码。通过模板,可以创建泛型函数和类,这些函数和类可以处理任意类型的数据。

示例代码

#include <iostream>
using namespace std;

// 泛型函数模板
template <typename T>
T max(T a, T b) {
    return (a > b) ? a : b;
}

int main() {
    int intMax = max(10, 20); // 调用泛型函数模板处理整数
    double doubleMax = max(10.5, 20.3); // 调用泛型函数模板处理浮点数
    cout << "Int max: " << intMax << endl;
    cout << "Double max: " << doubleMax << endl;
    return 0;
}

异常处理:C++ 提供了异常处理机制,程序可以在运行时检测和处理错误情况。通过使用 trycatchthrow 关键字,可以操作异常相关能力。

STL(标准模板库):STL 是一组高效的、通用的模板类和函数,用于执行常见的编程任务,如sortmapfindset等。STL 提供了容器(如 vectormapset 等)、迭代器、算法和函数对象等组件。

代码规范

这里简单介绍几个C++的编码规范:

  1. 使用 const 关键字:在函数参数和返回值前使用 const 关键字可以表明这些参数或返回值不会被修改,有助于提高代码的可读性和安全性。
  2. 避免使用全局变量:全局变量会导致代码难以维护和调试。尽量使用局部变量或类的成员变量来封装数据。
  3. 使用 RAII(资源获取即初始化):RAII 是一种管理资源(如内存、文件句柄、套接字等)的技术。通过将对象的生命周期与资源的生命周期绑定在一起,可以确保资源在不再需要时自动释放(非常有用)。
  4. 编写清晰的代码:使用有意义的变量名、函数名和注释来提高代码的可读性。避免使用过于复杂的代码结构,尽量保持代码简洁直观。

作者介绍

  • 程序喵大人
  • 35- 资深C/C++/Rust/Android/iOS客户端开发
  • 10年大厂工作经验
  • 嵌入式/人工智能/自动驾驶/音视频/游戏开发入门级选手
  • 《C++20高级编程》《C++23高级编程》等多本书籍著译者

C++训练营

专为校招、社招3年工作经验的同学打造的1V1 C++训练营,量身定制学习计划、每日代码review,简历优化,面试辅导,一条龙服务,已帮助多名学员获得offer!训练营介绍


http://www.kler.cn/a/532546.html

相关文章:

  • SQL Server中RANK()函数:处理并列排名与自然跳号
  • 手写MVVM框架-实现简单的数据代理
  • Spring Boot框架下的单元测试
  • 四、GPIO中断实现按键功能
  • 树莓派pico入坑笔记,故障解决:请求 USB 设备描述符失败,故障码(43)
  • LeetCode:121.买卖股票的最佳时机1
  • leetcode——对称二叉树(java)
  • RabbitMQ深度探索:SpringBoot 整合 RabbitMQ
  • WordPress自定义.js文件排序实现方法
  • 【大模型理论篇】DeepSeek-R1:引入冷启动的强化学习
  • VSCode中代码颜色异常
  • 索引的底层数据结构、B+树的结构、为什么InnoDB使用B+树而不是B树呢
  • 使用 Postman 进行 API 测试:从入门到精通
  • 【漫话机器学习系列】079.超参数调优(Hyperparameter Tuning)
  • 了解 ALV 中的 field catalog (ABAP List Viewer)
  • 大数据治理:技术视角的解析
  • java项目当中的全局异常处理
  • WPS计算机二级•幻灯片的音视频表格与图形
  • 算法设计-哈夫曼树(C++)
  • kafka集群性能调优方案
  • DeepSeek 登顶140国应用商店榜首
  • 【BUUCTF杂项题】FLAG
  • C++输入输出(上)
  • CSS --- 设置不自动换行
  • 代码随想录算法训练营第十七天| 二叉树5
  • Linux——文件与磁盘