C++基础理论知识及动手实践

本文深入探讨了C++编程的多种范式,包括面相过程、面向对象、泛型编程、模板元编程及函数式编程。同时,文章详细讲解了预处理、编译流程、变量命名规范、头文件的正确使用以及字面值的特性。特别对比了class与struct在C++中的主要区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

预处理

  预处理是相对“编译”而言的,是 C/C++ 程序所独有的阶段,其他编程语言都没有。在这阶段发挥作用的是预处理器,输入的是编码阶段产生的源码文件,输出的是“预处理”的源码文件。
  预处理(pre-process):目的是进行文字替换,用的各种预处理指令,不涉及语法;如 #include、#define、#if 实现预处理编程。

cpp
cpp file.cpp #命令行中的编译预处理命令
g++ file.cpp --save-temps #保存所有编译过程中文件

编译

  编译器依据 C++ 语法检查各种类型、函数的定义;因此可以能够以编译器为目标进行编程,有意识的控制编译器的行为。

编程范式

面相过程

  核心思想是 “命令” 通常是顺序执行的语句、子程序(函数),把任务分解成若干步骤去执行。

面向对象

  面向对象是 C++ 的基本编程范式。核心思想是 ”抽象“、”封装“ ,倡导把任务分解成高内聚低耦合的对象,这些对象互相通信协作完成任务。强调对象之间的关系和接口,而不是完成任务的具体步骤。

泛型编程

  核心思想: “一切皆为类型” 或者是“参数化类型”。使用模板而不是继承来复用代码,运行效率更高,代码更简洁。

模板元编程

  核心思想是 “类型运算” , 操作的数据是编译时可见的“类型”,比较特殊,代码只能由编译器执行,而不能被运行运行时的 CPU 执行。

函数式

  核心思想是 “一切皆可调用” ,通过一系列连续或者嵌套的函数调用实现对数据的处理。

变量命名

成员变量用 m_ ,全局变量用 g_

头文件

在头文件中使用

extern variables;

是声明不是定义。

字面值

整型可以存储在带符号数据类型中,但严格来说,十进制字面值不会是负数,符号的作用仅仅是对字面值取负值,并不在字面值之内。

\x 后紧跟一个或者多个16进制数, \ 后紧跟1个、2个后者3个八进制数字。

class VS struct 的区别

class defaults to private
struct defaults to public

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值