C++ 语法大揭秘:从小白到大神的通关秘籍

目录

一、开篇引入

二、C++ 关键字

三、命名空间

(一)命名空间的作用

(二)命名空间的定义

(三)命名空间的使用

四、C++ 输入与输出

(一)头文件与命名空间

(二)基本输入输出示例

(三)特殊格式输出说明

五、缺省参数

(一)缺省参数的概念

(二)缺省参数的分类

(三)缺省参数的注意事项

六、函数重载

(一)函数重载的概念

(二)函数重载的示例

(三)名字修饰与函数重载

七、引用

(一)引用的概念

(二)引用的特性

(三)常引用

八、总结回顾


一、开篇引入

        你是否曾沉浸在《原神》美轮美奂的开放世界中,惊叹于其流畅的画面和丰富的交互体验?又是否对 AlphaGo 击败围棋世界冠军的壮举感到震撼,好奇背后的技术奥秘?其实,这些令人瞩目的成果都离不开 C++ 语言的强大支撑。在游戏开发领域,C++ 凭借其高效的性能和对硬件的直接控制能力,成为构建游戏引擎、实现图形渲染和物理模拟的首选语言,为玩家打造出沉浸式的游戏世界。而在人工智能领域,C++ 同样发挥着关键作用,助力实现复杂的算法和模型,推动着 AI 技术的不断突破。

        C++ 的强大之处,源于其丰富的特性和灵活的编程范式,而这一切的基础,便是 C++ 的基本语法。它就像一把钥匙,为我们打开 C++ 编程世界的大门,让我们能够驾驭这门强大的语言,实现各种创意和想法。接下来,就让我们一起踏上 C++ 基本语法的学习之旅,探索其中的奥秘。

二、C++ 关键字

        关键字,也被称为保留字,是 C++ 语言中预先定义好的具有特殊含义的标识符。它们就像是 C++ 语言大厦的基石,构建起了整个编程体系的基本框架,用于定义数据类型、控制程序流程、声明函数和类等。在 C++ 中,总共有 70 多个关键字,不过大家不用死记硬背,在学习和实践的过程中,自然而然就能熟悉常用的关键字。下面,我就为大家介绍一些常见的关键字及其用途 。

  • 数据类型关键字:用于定义各种数据类型,规定数据的存储方式和取值范围,是构建数据结构的基础。例如int,用于定义整型变量,可表示整数,如int num = 10; ;double用于定义双精度浮点型变量,能精确表示小数,像double pi = 3.1415926; ;char则用于定义字符型变量,用于存储单个字符,比如char ch = 'A'; 。

  • 控制流关键字:负责控制程序的执行流程,实现条件判断、循环等逻辑,是程序逻辑的核心。if - else用于条件判断,根据条件的真假执行不同的代码块,例如:

int score = 85;
if (score >= 60) {
    cout << "及格" << endl;
} else {
    cout << "不及格" << endl;
}

        for、while和do - while用于循环操作,重复执行一段代码。for循环常用于已知循环次数的情况,像这样:

for (int i = 0; i < 5; i++) {
    cout << i << endl;
}

        while循环则在条件为真时持续循环,例如:

int num = 0;
while (num < 3) {
    cout << num << endl;
    num++;
}

        do - while循环与while类似,但它会先执行一次循环体,再判断条件,比如:

int count = 0;
do {
    cout << count << endl;
    count++;
} while (count < 3);

        switch - case用于多分支选择,根据表达式的值选择执行不同的分支,例如:

int day = 2;
switch (day) {
    case 1:
        cout << "星期一" << endl;
        break;
    case 2:
        cout << "星期二" << endl;
        break;
    default:
        cout << "其他" << endl;
}
  • 存储类关键字:决定变量或函数的存储方式和生命周期,控制数据的访问和管理。static声明的变量在程序运行期间一直存在,且只初始化一次,例如在函数内部使用static变量记录函数被调用的次数:

void func() {
    static int count = 0;
    count++;
    cout << "函数被调用次数:" << count << endl;
}

        extern用于声明变量或函数是在其他文件中定义的,方便在多个文件间共享数据和函数,比如在一个文件中定义int num = 10;,在另一个文件中可以通过extern int num;来使用这个变量 。

  • 函数和类相关关键字:在面向对象编程中,用于定义和操作类、对象以及类的成员函数,实现封装、继承和多态等特性。class用于定义类,是面向对象编程的核心,例如:

class Student {
public:
    string name;
    int age;
    void study() {
        cout << name << "正在学习" << endl;
    }
};

        public、private和protected用于指定类成员的访问权限,public成员可以被外部访问,private成员只能在类内部访问,protected成员在类内部和子类中可以访问 。this指针在类的成员函数中使用,指向调用该函数的对象,用于区分成员变量和局部变量,例如:

class Person {
public:
    string name;
    Person(string name) {
        this->name = name;
    }
};

        virtual用于声明虚函数,实现多态性,使子类可以重写父类的函数,比如:

class Animal {
public:
    virtual void sound() {
        cout << "动物发出声音" << endl;
    }
};
class Dog : public Animal {
public:
    void sound() override {
        cout << "汪汪汪" << endl;
    }
};

三、命名空间

(一)命名空间的作用

        在 C++ 的代码世界里,随着项目规模的不断扩大,各种变量、函数和类的数量也日益增多。当不同的模块或者库中出现相同名称的标识符时,就会引发命名冲突,这就好比在一个小镇里,有两个人都叫 “小明”,当你喊 “小明” 的时候,就很难确定你到底在叫谁 。

        命名空间就像是为代码世界划分出的一个个独立区域,每个区域都有自己独特的 “标识”。在不同命名空间中的标识符,即使名称相同,也不会相互干扰。就好比把两个 “小明” 分别放在不同的房间里,当你在某个房间喊 “小明” 时,只会对应这个房间里的 “小明”。通过这种方式,命名空间有效地避免了命名冲突,让代码的组织更加清晰、有序 。

(二)命名空间的定义

        在 C++ 中,使用namespace关键字来定义命名空间,基本语法如下:

namespace 命名空间名称 {
    // 命名空间成员,可以是变量、函数、类等
    成员声明;
}

        例如,我们定义一个名为MyNamespace的命名空间,并在其中定义一个变量和一个函数:

namespace MyNamespace {
    int myVariable = 10;
    void myFunction() {
        std::cout << "This is myFunction in MyNamespace" << std::endl;
    }
}

        命名空间还可以进行嵌套,即一个命名空间中包含另一个命名空间,如下所示:

namespace OuterNamespace {
    int outerVariable = 20;
    namespace InnerNamespace {
        int innerVariable = 30;
        void innerFunction() {
            std::cout << "This is innerFunction in InnerNamespace" << std::endl;
        }
    }
}

        在同一个工程中,允许存在多个相同名称的命名空间,编译器会将它们合并为同一个命

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大雨淅淅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值