【C++编程入门基础(一)】

ops/2025/2/28 3:12:04/

文章目录

  • 一、什么是C++
  • 二、命名空间
    • (1)为什么有命名空间
    • (2)命名空间的定义
    • (3)命名空间的使用
  • 三、输入和输出
    • (1)输出
    • (2)输入
    • (3)总结
  • 四、缺省参数
    • (1)定义
    • (2)示例
    • (3)分类
    • (4)注意事项
  • END


一、什么是C++

C++创建的起源:

C语言是结构化和模块化的语言,适合处理较小规模的程序。
对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。
为了解决软件危机, 20世纪80年代,
计算机界提出了OOP(object oriented programming面向对象)思想,支持面向对象的程序设计语言应运而生。

C++的定义:

C++是基于C语言而产生的,它既可以进行C语言的过程化程序设计,
又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行面向对象的程序设计。

二、命名空间

(1)为什么有命名空间

对标识符的名称进行本地化,以避免命名冲突或名字污染。

(2)命名空间的定义

使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员。

// 给命名空间命名为 yk
namespace yk
{// 命名空间中可以定义变量int num = 10;// 命名空间中可以定义函数int Add(int num1,int num2){return num1 + num2;}// 命名空间中可以定义类型struct Node{int val;	struct Node* next;};// 结构体类型中;(分号)不要忘记了哦!
}

注意事项:

  • 1、命名空间可以嵌套;
  • 2、同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中。
  • 3、一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中。

(3)命名空间的使用

( a ) 加命名空间名称及作用域限定符

int main()
{printf("%d\n", yk::num);return 0;    
}

( b ) 使用using将命名空间中某个成员引入

using yk::num;
int main()
{printf("%d\n", num);return 0;    
}

( c ) 使用 using namespace 命名空间名称 引入

using namespce yk;
int main()
{printf("%d\n", num);return 0;    
}

三、输入和输出

(1)输出

// 使用 cout 标准输出对象(控制台)时,必须包含 <iostream> 头文件
#include<iostream>// std 是 C++ 标准库的命名空间名,
// C++ 将标准库的定义实现都放到这个命名空间中
using namespace std;int main()
{cout<<"Hello world!!!"<<endl;return 0;
}

输出结果:

(2)输入

// 使用 cin 标准输入对象(键盘)时,必须包含 <iostream> 头文件
#include<iostream>// std 是 C++ 标准库的命名空间名,
// C++ 将标准库的定义实现都放到这个命名空间中
using namespace std;int main()
{int num = 0;cout << "请输入一个整数:";cin >> num;cout << num << endl;return 0;
}

输出结果:

(3)总结

  • 1.、使用cout标准输出对象(控制台)和cin标准输入对象(键盘)时,必须包含<iostream>头文件。 以及按命名空间使用方法使用std
  • 2. coutcin是全局的流对象,endl是特殊的C++符号,表示 换行输出,他们都包含在包含<iostream>头文件中。
  • 3. <<是流插入运算符,>>是流提取运算符。
  • 4. 使用C++输入输出更方便,不需要像 printf/scanf 输入输出时那样,需要手动控制格式。C++的输入输出可以自动识别变量类型。
  • 5. 实际上coutcin分别是ostreamistream类型的 对象

四、缺省参数

(1)定义

缺省参数是声明或定义函数时为函数的参数指定一个 缺省值
在调用该函数时,如果没有指定实参则采用该形参的缺省值,否则使用指定的实参。

(2)示例

#include<iostream>// std 是 C++ 标准库的命名空间名,
// C++ 将标准库的定义实现都放到这个命名空间中
using namespace std;void Print(int num = 0)
{cout << num << endl;
}int main()
{Print();	// 没有传参时,使用参数的默认值Print(20);	// 传参时,使用指定的实参return 0;
}

输出结果:

(3)分类

全缺省参数

函数的 全部参数 都指定缺省值。

代码示例:

#include<iostream>// std 是 C++ 标准库的命名空间名,
// C++ 将标准库的定义实现都放到这个命名空间中
using namespace std;void Print(int num1 = 1,int num2 = 2,int num3 = 3)
{cout << num1 << endl;cout << num2 << endl;cout << num3 << endl;
}int main()
{// 调用函数Print();	return 0;
}

输出结果:

半缺省参数

函数的 部分参数 指定缺省值,但必须从右往左依次来给出,不能间隔着给。

代码示例:

#include<iostream>// std 是 C++ 标准库的命名空间名,
// C++ 将标准库的定义实现都放到这个命名空间中
using namespace std;void Print(int num1 , int num2 = 20, int num3 = 30)
{cout << num1 << endl;cout << num2 << endl;cout << num3 << endl;
}int main()
{// 调用函数Print(10);return 0;
}

输出结果:

(4)注意事项

  • 缺省参数不能在函数声明和定义中同时出现。
  • 缺省值必须是常量或者全局变量
  • C语言不支持(编译器不支持)

END

每天都在学习的路上!
On The Way Of Learning


http://www.ppmy.cn/ops/161840.html

相关文章

JavaWeb-ServletContext应用域接口

文章目录 ServletContext接口简介获取一个ServletContext对象ServletContext接口中的相关方法获取应用域配置参数关于应用域参数的配置要求getContextPath获取项目路径getRealPath获取真实路径log系列方法添加相关日志增删查应用域属性 ServletContext接口简介 ServletContext…

C语言【指针篇】(三)

C语言【指针篇】&#xff08;三&#xff09; 前言正文1. 数组名的理解2. 使用指针访问数组3. 一维数组传参的本质4. 冒泡排序5. 二级指针6. 指针数组7. 指针数组模拟二维数组 总结 前言 本文主要基于前面对指针的掌握&#xff0c;进一步学习&#xff1a;数组名的理解、使用指针…

分布式服务注册与发现

目录 核心概念 常见实现方式 常见工具与框架 优点 挑战 应用场景 总结 分布式服务注册与发现是微服务架构中的关键组件,用于动态管理服务的注册、发现和调用。它帮助服务在分布式环境中自动找到彼此,确保系统的高可用性和可扩展性。 核心概念 服务注册: 服务启动时向…

服务器间迁移conda环境

注意&#xff1a;可使用迁移miniconda文件 or 迁移yaml文件两种方式&#xff0c;推荐前者&#xff0c;基本无bug&#xff01; 一、迁移miniconda文件&#xff1a; 拷贝旧机器的miniconda文件文件到新机器: 内网拷贝&#xff1a;scp -r mazhf192.168.1.233:~/miniconda3 ~/ 外…

Qt——使用QtConcurrent::run开启的线程,程序退出后仍在后台运行的解决方法(QFutureWatcher监视线程)

【系列专栏】:博主结合工作实践输出的,解决实际问题的专栏,朋友们看过来! 《项目案例分享》 《极客DIY开源分享》 《嵌入式通用开发实战》 《C++语言开发基础总结》 《从0到1学习嵌入式Linux开发》 《QT开发实战》 《Android开发实

物联网通信应用案例之《智慧农业》

案例概述 在智慧农业方面&#xff0c;一般的应用场景为可以自动检测温度湿度等一系列环境情况并且可以自动做出相应的处理措施如简单的浇水和温度控制等&#xff0c;且数据情况可远程查看&#xff0c;以及用户可以实现远程控制。 基本实现原理 传感器通过串口将数据传递到Wi…

【数据处理】COCO 数据集掩码 Run-Length Encoding (RLE) 编码转二进制掩码

输入&#xff1a;结果.json 输出&#xff1a;mask.jpg json内容示例如下&#xff1a; {"labels":[ # class_id 1,2,3,...],"scores":[ # 置信度0.2,0.7,0.3,...],"bboxes":[[1244.0,161.0,1335.0,178.0],[1243.0,161.0,1336.0,178.0],[1242.0,1…

线性回归(一)基于Scikit-Learn的简单线性回归

主要参考学习资料&#xff1a; 《机器学习算法的数学解析与Python实现》莫凡 著 前置知识&#xff1a;线性代数-Python 目录 问题背景数学模型假设函数损失函数优化方法训练步骤 代码实现特点 问题背景 回归问题是一类预测连续值的问题&#xff0c;满足这样要求的数学模型称作…