C++入门(1)

一。第一个C++程序

文件后缀为.cpp,Linux 使用 g++ 编译,VS 识别 cpp 自动调用 C++ 编译器

兼容 C 语言printf写法;原生标准输出使用<iostream>std::cout

二。命名空间

1.定义:定义命名空间,需要使用关键字namespace,然后接一个{},括号中的即为命名空间的成员

2.作用:解决 C 语言全局命名污染、同名变量/函数编译冲突问题。

3.特性:

  • 域隔离:分为局部域、全局域、命名空间域、类域,仅局部/全局域影响变量生命周期
  • 嵌套定义:多文件同名 namespace 会自动合并为同一个

4.使用方式:

  • 限定访问 (项目推荐):bit::rand(每次使用前都加上,例如:std::cin>>a,std::endl)
  • 单独展开成员using N::b(例如:先导入using std::cin;之后可以写cin>>a)
  • 全局展开 (仅练习用,项目禁用):using namespace std

三。C++输入和输出

需要包含头文件<iostream>

1.输入:即std::cin>>x(待输入的字符)(如果std在前面已经导入过了,则可以不写),支持多组输入->std::cin>>x>>y。它会自动识别类型,不需要&,不需要格式符。和scanf类似

2.输出:即std::cout>>x(待输入的字符)(如果std在前面已经导入过了,则可以不写),支持多组输入->std::cout>>x>>y。它会自动识别类型,不需要&,不需要格式符。和printf类似

3.endl 和 ' \n ' :都有换行的功能,但略有差异(后续会提)

4.代码演示:

四。缺省函数

1.定义:就是在声明或定义函数时为函数的参数指定一个缺省值(默认值)。在调用函数时,若没有指定形参,则使用该形参的缺省值(默认值)

2.分类:

  • 全缺省:就是全部形参都给一个缺省值
  • 半缺省:部分形参给缺省值。规定半缺省参数必须从左往后依次连续缺省,不能间隔跳跃给缺省值

说明:带缺省函数的函数调用,规定必须从左往右依次给实参,不能跳跃给实参

函数声明和定义分离时,缺省参数不能在函数声明和定义中同时出现,规定函数声明必须给 缺省值

五。函数重载

1.定义:函数重载就是 同一个作用域中出现同名函数。但是要求同名函数的形参不同,可以是参数个数不同,类型不同或顺序不同。仅返回值不同不能构成重载。注意:重载 + 缺省参数会产生调用歧义,编译报错。 C 语言不支持重载,是 C++ 独有的特性。

六。引用

1.定义:就是给变量取一个别名。编译器不会为引用变量开辟新的空间,它和它引用的变量公用一块内存空间。使用方法:类型&引用别名=引用对象

2.核心特性:

  • 定义时必须初始化
  • 一个变量可拥有多个引用
  • 绑定实体后,无法再指向其他变量

代码演示:

  1. 功能:
  • 做函数形参,修改形参影响实参
  • 做函数形参,减少拷贝,提高效率
  • 引用返回,即函数返回别名,可修改返回值,提升性能;禁止返回局部变量引用(野别名风险)

七。inline内联函数

1.作用:编译时c++编译器会在调用处展开内联函数,无需建立栈帧,提高效率,以此替代C的宏

2.限制:仅适合短小频繁调用函数;递归、长函数 inline 会被编译器忽略(仅建议,非强制)

3.注意点:inline不建议声明和定义分离在两个文件中,分离会导致链接错误

八。nullptr

  1. C 语言NULL是宏,本质为 0,函数重载时会错误匹配 int 形参,产生逻辑 bug
  2. C++11 新增nullptr关键字,仅能隐式转换为各类指针,不会和整数混淆,是空指针标准写法。
相关推荐
Niuguangshuo1 小时前
silero-vad:超轻量级开源 VAD 实践指南
开发语言·python
哭哭啼2 小时前
JAVA服务问题诊断
java·开发语言·jvm
wen_zhufeng2 小时前
IndexTTS 2.5 技术报告
人工智能·算法·机器学习
大熊背3 小时前
树莓派相机自动白平衡详解(四)
算法·树莓派·白平衡·isppipeline
一米阳光86613 小时前
软考(中级)软件设计师核心笔记(9)算法——背包问题
笔记·算法·职场发展·软考·软件设计师·中级职称
晚风醉蝶3 小时前
1-11-奇偶排序-OddEvenSort
java·数据结构·算法
旖旎夜光3 小时前
LeetCode 852:山脉数组的峰顶索引(二分查找) —— 题解
数据结构·c++·算法·leetcode·二分查找
程与留3 小时前
05_Qt 核心模块概览——Qt Core、Gui、Widgets、Quick 的职责划分
c++·qt
CRMEB定制开发3 小时前
2026年最值得推荐的10大开源商城系统盘点
开发语言·人工智能·开源·商城系统·小程序商城