| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> 从C快速入门C++ 一.命名空间、引用、函数重载... -> 正文阅读 |
|
[C++知识库]从C快速入门C++ 一.命名空间、引用、函数重载... |
从C快速入门C++ 一.命名空间、引用、函数重载
C++关键字C++98 中有63个关键字, C90(C89) 32个关键字
可见 C++ 关键字是在 C语言基础上增加了许多。 ? 命名空间在学习命名空间之前还需要了解一些关于 C++ 的知识 C++预处理器 和 iostream 文件C++ 和 C一样都使用一个预处理器,在程序进行主编译之前对源文件进行处理
? 头文件名C++ 也使用 编译器自带的头文件(包含文件),相较于 C语言中 如熟悉的 命名空间定义
? 简而言之,在使用两个代码量较大的项目时 可能存在两个名称都为 fun() 的函数 或者 a 变量, 编译器无法分辨。而命名空间的存在就可以使工程代码封装在 举个例子:张三是北大的学生,而李四是清华的学生,他俩的学号都是 001 ,如果你只知道学号无法确定到底是谁,但是如果告诉你是清华的 001 号你就知道指的是 李四。
注:定义一个命名空间相当于定义一个的 命名空间使用● 加命名空间名称及作用域限定符( :: ) 当用户只想使用命名空间中某个成员时使用这种方式 ? 推荐
● 使用 using 将命名空间成员引入 当用户需要频繁使用某个成员时使用,相当于全局变量
● 使用 using namespace 将命名空间成员引入 当需要使用命名空间许多成员而不想每次使用作用于限定符时,直接将命名空间所有成员引入,这是一种省事的方法但是当在大型项目可能会导致命名冲突潜在问题。
? 函数重载默认参数缺省参数是声明或定义函数时为函数的参数制定一个缺省值。在调用该函数时,如果没有实参则使用缺省值,否则使用实参。 ?可以形象的认为是参数中的 “备胎”。 全缺省参数(参数都有默认值)
半缺省参数(部分参数有默认值)
注:对于带参数列表的函数必须从右往左添加默认值,不能跳着给参数初值 如 函数重载定义默认参数能够让你使用不同数目的参数调用同一个函数,而函数重载能让你使用多个同名函数。(函数的多态) C++允许在同一作用域中出现同名但是 参数列表不同的几个函数,常用来处理功能类似但数据类型不同的问题。 重载就类似于汉语中一词多义的那种感觉。
linux 下的函数名修饰测试
函数重载调用原理?在函数编译阶段编译器会对函数参数类型进行推演 ? ? ? 引用引用是已定义变量的别名(另一个名称)。主要用于做函数的形参。 引用的特性:
.
当用 int& 引用 double 变量 b 时直接会报错,但将加上 const 后只有如下的 warning
结论: 2.
注: 所以函数返回时,如果返回对象没被系统回收,就可以用引用返回,否则必须使用传值返回。不能返回函数栈上的空间否则就会出现如上的问题。 ? 传值 引用效率比较
? ? 引用和指针的区别学过C语言的人都听过指针,或亲身体验过其复杂但又巧妙的设计 在语法层面引用是一个别名,和其引用实体公用同一块空间;而指针(变量)是存放地址的一个变量。 真的这么简单吗?所以C++是如何实现引用的呢?? 通过查看汇编指令我们惊奇的发现,不能说指针和引用是毫无关系…这简直一毛一样啊! 原来 C++ 的引用也只不过是指针披上了引用的外衣罢了,底层实现逻辑仍是指针的方式。 结论: ● 引用与指针语法层面不同点(概念,特性) |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 2:36:45- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |