[C++]命名空间等——喵喵要吃C嘎嘎

这篇具有很好参考价值的文章主要介绍了[C++]命名空间等——喵喵要吃C嘎嘎。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

[C++]命名空间等——喵喵要吃C嘎嘎,[C++]喵喵要吃C嘎嘎,c++,c语言,算法

希望你开心,希望你健康,希望你幸福,希望你点赞!

最后的最后,关注喵,关注喵,关注喵,大大会看到更多有趣的博客哦!!!

喵喵喵,你对我真的很重要!

目录

前言

C++关键字总览,后面细说

命名空间

 命名空间的定义

命名空间的使用

C++的输入与输出

缺省参数

函数重载

定义

引用

内联函数

总结


前言

废话不多说,我们冲冲冲!


C++关键字总览,后面细说

[C++]命名空间等——喵喵要吃C嘎嘎,[C++]喵喵要吃C嘎嘎,c++,c语言,算法


命名空间

C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染namespace关键字的出现就是针对这种问题的。


 命名空间的定义

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

// 命名空间中可以定义变量/函数/类型
namespace miao
{
int rand = 10;

int Add(int left, int right)
{
return left + right;
}

struct Node
{
struct Node* next; int val;
};


//也可以嵌套
namespace N1
{
int a; int b;
int Add(int left, int right)
{
return left + right;
}

namespace N2
{
int c; int d;
int Sub(int left, int right)
{
return left - right;
}
}
}




//同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中。
//多个文件有相同命名空间,将会合并。


命名空间的使用

命名空间中可以定义变量/函数/类型

命名空间的三种用法:

  • 加命名空间名称及作用域限定符

  • int main()
    {
        printf("%d\n", N::a);
    	return 0;
    }
    
  • 加命名空间名称及作用域限定符

  • 	using N::b;
    	int main()
    	{
        printf("%d\n", N::a);
    	printf("%d\n", b);
    	return 0;
    	}
    
  • 使用using namespace 命名空间名称 引入

	using namespce N;
	int main()
	{
	printf("%d\n", N::a);
	printf("%d\n", b);
	Add(10, 20);
	return 0;
	}

C++的输入与输出

#include<iostream>
// std是C++标准库的命名空间名,C++将标准库的定义实现都放到这个命名空间中 
using namespace std;
int main()
{
cout<<"Hello world!!!"<<endl; 
return 0;
}

cout标准输出对象(控制台)

cin标准输入对象(键盘)

<<是流插入运算符,>>是流提取运算符


缺省参数

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

[C++]命名空间等——喵喵要吃C嘎嘎,[C++]喵喵要吃C嘎嘎,c++,c语言,算法

  • 全缺省参数
  • [C++]命名空间等——喵喵要吃C嘎嘎,[C++]喵喵要吃C嘎嘎,c++,c语言,算法
  • 半缺省参数
  • [C++]命名空间等——喵喵要吃C嘎嘎,[C++]喵喵要吃C嘎嘎,c++,c语言,算法

注意:

  1. 半缺省参数必须从右往左依次来给出,不能间隔着给
  2. 省参数不能在函数声明和定义中同时出现
  3. 缺省值必须是常量或者全局变量

  4. C语言不支持(编译器不支持)

  5. 注意:如果声明与定义位置同时出现,恰巧两个位置提供的值不同,那编译器就无法确定到底该用那个缺省值。


函数重载

定义

函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数 类型 类型顺序)不同,常用来处理实现功能类似数据类型不同的问题。

	#include<iostream>
	using namespace std; 3
	// 1、参数类型不同
	int Add(int left, int right)
	{
	cout << "int Add(int left, int right)" << endl; 8
	return left + right;
	}

	double Add(double left, double right)
	{
	cout << "double Add(double left, double right)" << endl; 15
	return left + right;
	}

	// 2、参数个数不同
	void f()
	{
	cout << "f()" << endl;
	}

	void f(int a)
	{
	cout << "f(int a)" << endl;
	}

	// 3、参数类型顺序不同
	void f(int a, char b)
	{
	cout << "f(int a,char b)" << endl;
	}

	void f(char b, int a)
	{
	cout << "f(char b, int a)" << endl;
	}

	int main()
	{
	Add(10, 20);
	Add(10.1, 20.2);

	f();
	f(10);

	f(10, 'a');
	f('a', 10);
 
	
return 0;
}	

引用

引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。(也就是外号,都是那个人)

类型& 引用变量名(对象名) = 引用实体

void TestRef()
{
int a = 10;
int& ra = a;//<==定义引用类型
printf("%p\n", &a);
printf("%p\n", &ra);
}

//引用类型必须和引用实体同种类型

//引用不能引用常量

//引用可做参数,也可做返回值。


内联函数

inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数调用建立栈帧的开销,内联函数提升程序运行的效率。

inline是一种以空间换时间的做法,如果编译器将函数当成内联函数处理,在编译阶段,会用函数体替换函数调用,缺陷:可能会使目标文件变大,优势:少了调用开销,提高程序运行效率

inline对于编译器而言只是一个建议,不同编译器关于inline实现机制可能不同,一般建议:将函数规模较小(即函数不是很长,具体没有准确的说法,取决于编译器内部实现)不是递归、频繁调用的函数采用inline修饰,否则编译器会忽略inline特性

[C++]命名空间等——喵喵要吃C嘎嘎,[C++]喵喵要吃C嘎嘎,c++,c语言,算法


总结

挖个坑,喵喵想写预处理,编译,汇编,链接,这一套程序运行的解析博客。嘻嘻


希望你开心,希望你健康,希望你幸福,希望你点赞!

最后的最后,关注喵,关注喵,关注喵,大大会看到更多有趣的博客哦!!!

喵喵喵,你对我真的很重要!

[C++]命名空间等——喵喵要吃C嘎嘎,[C++]喵喵要吃C嘎嘎,c++,c语言,算法文章来源地址https://www.toymoban.com/news/detail-730035.html

到了这里,关于[C++]命名空间等——喵喵要吃C嘎嘎的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 刘铁猛C#语言入门详解课程听课笔记--初识类与命名空间

    类:构成程序的主体;C语言是一门面向过程的程序设计语言,所以其用函数来组织程序;C#语言是一门完全面向对象的程序设计语言,其用类来组织程序,类是构成程序的主体,任何一个方法和变量都必须隶属于某一个具体的类;而C++也是一门面向对象的程序设计语言,但是

    2024年02月13日
    浏览(36)
  • 【C++对于C语言的扩充】C++与C语言的联系,命名空间、C++中的输入输出以及缺省参数

    铁子们好啊!这是阿辉新开的专栏《拿下C++》的第一篇文章,本文主要带大家了解一下C++,带大家从C语言过渡到C++,所以大家首先要有C语言的基础,否则后面的内容你可能会异常懵逼。不会C语言的铁子,这里推荐各位先看阿辉的专栏《爱上C语言》(点击即可跳转,自荐一下

    2024年02月03日
    浏览(37)
  • 【C++】命名空间 namespace 与 标准流 iostream ( 命名空间概念简介 | 命名空间定义 | 命名空间使用 | iostream 中的命名空间分析 )

    命名空间 namespace 又称为 名字空间 , 名称空间 , 名域 , 作用域 , 是 C++ 语言 对 C 语言 的扩展 之一 ; C++ 中的 命名空间 namespace 指的是 标识符 的 可见范围 , C++ 标准库中的 所有 标识符 , 都定义在 std 命名空间中 ; 命名空间 英文名称是 \\\" namespace \\\" , name 是 名字 , 名称 的意思 ,

    2024年02月12日
    浏览(44)
  • 计算机语言 之【C++】入门级知识讲解(命名空间,C++输入输出,缺省参数,函数重载,引用,内敛函数,auto关键字,for循环,指针空值nullptr)

    三点睡六点起,阎王夸我好身体 不到三点我不睡,太平间里抢C位 目录: 前言: 本片博客是以学习过C语言之后进入C++学习为前提,讲解C++入门级知识,为C++之后的学习做铺垫 –❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀-正文开始-❀–❀–❀–❀–❀

    2024年04月11日
    浏览(134)
  • vs2022 命名空间“System”中不存在类型或命名空间名“Printing”

    在监控打印机状态的时候,需要用到System.Printing。 System.Printing 命名空间 | Microsoft Learn 在微软官网有这个命名空间,其中提到 不支持命名空间中的System.Printing类在Windows服务或 ASP.NET 应用程序或服务中使用。 尝试从其中一种应用程序类型内使用这些类可能会导致意外问题,例

    2024年02月05日
    浏览(37)
  • [Unity命名空间教程]介绍Unity新自带的命名空间UnityEngine.Pool

      大家都知道在一些游戏中常常要创建大量的游戏对象,如果这些对象长期占用一些内存而没有触发垃圾回收机制(以下简称GC)或者过于频繁的触发GC就会导致游戏的帧数暴跌,在移动设备直接造成卡死的现象,那引用对象池的概念,能让这些游戏对象在刚开始的时候就被初

    2023年04月11日
    浏览(48)
  • 命名空间“Microsoft”中不存在类型或命名空间名“office”(是否缺少程序集引用?)

    生成软件的时候提示office报错 项目-引用-右击添加引用-选择如下图-点击确定 选择后点击重新生成即可生成成功! 如果是之前就有添加,然后再打开这个软件显示office报错,就将之前引用的删除,重新添加引用 。

    2024年02月11日
    浏览(48)
  • [C语言]栈与队列——喵喵队,冲冲冲

    宝子,你不点个赞吗?不评个论吗?不收个藏吗? 最后的最后,关注我,关注我,关注我,你会看到更多有趣的博客哦!!! 喵喵喵,你对我真的很重要。 目录 前言 栈 栈的实现 队列 队列的实现 总结 实践,实践,实践,多练几遍力扣,牛客的题。落实到脚下。 栈:一种

    2024年02月04日
    浏览(24)
  • 【C++】命名空间

    命名空间时怎么来的?它又是什么,让我们一起来看一下吧 首先了解:在同一个域中不能同时出现重名的变量或函数名等(不同域中可以尽管是全局与局部域) ok 我们来看 在工程项目里,一开始用 C语言 开发时,可能你在你的项目文件中给你的变量(或函数)取了一个好名

    2024年02月02日
    浏览(43)
  • 【C++】1. 命名空间

    当我们使用c语言编写项目时,可能遇到以下情况: 变量名与某个库函数名重复,导致保错。这种情况一般是自己不知道引用的头文件包含哪些库函数。 2. 和队友一起编写项目时,自己使用的标识符和队友的标识符名字一样,导致代码整合时发生错误。这种情况很难避免,毕

    2023年04月13日
    浏览(103)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包