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

news/2025/2/23 6:52:35

文章目录

  • 一、什么是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.niftyadmin.cn/n/5863150.html

相关文章

大模型监督微调(SFT)技术解析

大模型监督微调&#xff08;SFT&#xff09;技术深度解析 一、基本知识介绍 监督微调&#xff08;Supervised Fine-Tuning&#xff09;是连接预训练与具体应用的关键技术层。其本质是通过特定任务的标注数据&#xff0c;在保持预训练模型核心能力的前提下&#xff0c;调整模型…

计算机毕业设计Hadoop+Spark+DeepSeek-R1大模型民宿推荐系统 hive民宿可视化 民宿爬虫 大数据毕业设计(源码+LW文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

STM32的“Unique device ID“能否修改?

STM32F1系列的"Unique device ID"寄存器的地址为0x1FFFF7E8。 这个寄存器是只读的。 "Unique device ID"寄存器位于“System memory”中。“System memory”地址范围为“0x1FFF F000- 0x1FFF F7FF”。 所有STM32 MCU上都存在系统引导加载程序。顾名思义&a…

服务器配置-从0到分析2:服务器基本设置

最基础的&#xff1a; zerotier组建虚拟局域网&#xff0c;再内网穿透 在vscode&#xff08;coding&#xff09;、mobaxterm&#xff08;normal pc&#xff09;、termius&#xff08;normal Android&#xff09;端配置client&#xff0c;能够remote-ssh再看下面 以及基本的文…

041集——封装之:新建图层(CAD—C#二次开发入门)

如图所示&#xff1a;增加一个图层“新图层”&#xff0c;颜色为红&#xff08;1&#xff09;&#xff0c;当图层颜色定义为黄&#xff08;2&#xff09;时&#xff0c;直接覆盖之前图层颜色&#xff0c;图层名不变。 代码如下&#xff1a; /// </summary>/// <param …

《A++ 敏捷开发》- 16 评审与结对编程

客户&#xff1a;我们的客户以银行为主&#xff0c;他们很注重质量&#xff0c;所以一直很注重评审。他们对需求评审、代码走查等也很赞同&#xff0c;也能找到缺陷&#xff0c;对提升质量有作用。但他们最困惑的是通过设计评审很难发现缺陷。 我&#xff1a;你听说过敏捷的结对…

PolyOS 是面向 RISC-V 架构的智能终端和 AIoT 开源操作系统(基于开源鸿蒙)

PolyOS 是面向 RISC-V 架构的智能终端和 AIoT 开源操作系统 官网&#xff1a;PolyOS | PolyOS PolyOS Mobile&#xff0c;作为一款面向 RISC-V 架构的智能终端操作系统&#xff0c;我们希望能够构建卓越的特性和创新的生态系统来引领未来移动操作系统技术的发展。该操作系统基…

Windows 上源码安装 FastGPT

FastGPT 是一个强大的 AI RAG 平台&#xff0c;值得我们去学习了解。与常见的 Python 体系不同&#xff0c;Fast GPT 采用 Node.js/Next.js 平台&#xff08;对于广大 JS 开发者或前端开发者比较亲切友好&#xff09;&#xff0c;安装或部署比较简单。虽然一般情况下推荐简单的…