C++笔记1•C++入门基础•

news2025/1/19 17:09:16

1.C++关键字

C++总计63个关键字,C语言32个关键字:

2.命名空间:

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

例如:

using namespace std;//全部展开

using cout ;//部分展开

(1)使用 using 将命名空间中某个成员引入
using N::b ;
int main ()
{
    printf ( "%d\n" , N::a );
    printf ( "%d\n" , b );
    return 0 ;    
}
(2)使用 using namespace 命名空间名称 引入
using namespce N ;
int main ()
{
    printf ( "%d\n" , N::a );
    printf ( "%d\n" , b );// printf ( "%d\n" , N::b ); 全展开时可以把 N::省略
    Add ( 10 , 20 );
    return 0 ;    
}

3.C++输入&输出  

采用 cout 输出(<<)  cin 输入(>>)   endl换行,需要调用using namespce std;这个命名空间

#include<iostream>//与 C 头文件区分,也为了正确使用命名空间, 规定 C++ 头文件不带 .h
// std C++ 标准库的命名空间名, C++ 将标准库的定义实现都放到这个命名空间中
using namespace std ;
int main ()
{
int a=0;
cout << "Hello world!!!" << endl ;
cin >> a ;
cout << a << endl ;
return 0 ;
}
//
1.cout cin 是全局的流对象, endl 是特殊的 C++ 符号,表示换行输出,他们都包含在包含
< iostream >头文件中。
2. << 是流插入运算符, >> 是流提取运算符
3. 使用 C++ 输入输出更方便,不需要像 printf/scanf 输入输出时那样,需要手动控制格式。
C++ 的输入输出可以自动识别变量类型。
4. 实际上 cout cin 分别是 ostream istream 类型的对象,

4.缺省函数

缺省参数是 声明或定义函数时 为函数的 参数指定一个缺省值 。在调用该函数时,如果没有指定实参则采用该形参的缺省值,否则使用指定的实参。
void Func ( int a = 0 )
{
cout << a << endl ;
}
int main ()
{
Func ();     // 没有传参时,使用参数的默认值
Func ( 10 );   // 传参时,使用指定的实参
return 0 ;
}

(1)参数全缺省: 

void Func ( int a = 1 , int b = 2 , int c = 3 )
{
    cout << "a = " << a << endl ;
    cout << "b = " << b << endl ;
    cout << "c = " << c << endl ;
}

(2)参数半缺省:

void Func ( int a , int b = 1 , int c = 2 )
{
    cout << "a = " << a << endl ;
    cout << "b = " << b << endl ;
    cout << "c = " << c << endl ;
}
注意:
1. 半缺省参数必须 从右往左依次 来给出,不能间隔着给
2. 缺省参数不能在函数声明和定义中同时出现(二选一)
  //a.h
  void Func ( int a = 10 );
  // a.cpp
  void Func ( int a = 20 )
{}
  // 注意:如果生命与定义位置同时出现,恰巧两个位置提供的值不同,那编译器就无法确定到底该
用那个缺省值。
3. 缺省值必须是常量或者全局变量
4. C 语言不支持(编译器不支持)

5.函数重载 

(1)函数重载概念:

       1)函数名相同,参数不同(类型or个数or类型顺序不同)

       2)返回值没有要求

注意:

一个函数名定义多个功能(函数名相同,参数不同(参数顺序不同可算不同))只是返回值不同,不能构成重载,例如:

int add(int i)   long add(int m)

 6.引用

(1)引用概念:
引用 不是新定义一个变量,而 是给已存在变量取了一个别名 ,编译器不会为引用变量开辟内存空 间,它和它引用的变量共用同一块内存空间。
类型 & 引用变量名 ( 对象名 ) = 引用实体; 引用类型 必须和引用 实体 同种类型
void TestRef ()
{
    int a = 10 ;
    int & ra = a ; //<==== 定义引用类型
    printf ( "%p\n" , & a );
    printf ( "%p\n" , & ra );
}
(2)引用特性:
   1) 引用在 定义时必须初始化
   2) 一个变量可以有多个引用
   3) 引用一旦引用一个实体,再不能引用其他实体
void TestRef ()
{
  int a = 10 ;
  int b   = 10 ;
  // int& ra;   // 该条语句编译时会出错
  int & ra = a ;
 // int & ra = b ; // 该条语句编译时会出错, 引用一旦引用一个实体,再不能引用其他实体
  int & rra = a ;
  printf ( "%p %p %p\n" , & a , & ra , & rra );  
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1992880.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VSCode学习记录

一、下载相关包 npm install npm install vue-router //路由 npm install axios npm install element-plus --save //组件 二、构建一个简单的项目 1.创建router文件夹&#xff0c;在里面创建一个index.js文件用来管理不同页面的路由 import {createRouter,createWebHashHist…

【virtuoso】ocean脚本生成数据文件

1. 生成的原始脚本文件 点击ADE&#xff0c;Sessionsave Ocean Script (如果是AED Explorer或者 ADE Assembler)点击之后会出现这样选项 第2个选项&#xff0c;保存东西更多。这里选择第一个选项 输出的脚本如图所示 ocean文件 1simulator仿真器选择2design设计文件所在位置3r…

循环依赖问题和Spring三级缓存

产生原因&#xff1a;两个或多个bean之间互相持有对方的引用 解决&#xff1a;spring三级缓存 一级缓存&#xff1a;单例池&#xff0c;存放已经经历了完整的生命周期的bean 二级缓存&#xff1a;存放早期的&#xff0c;还没走完生命周期的bean 三级缓存&#xff1a;存放对…

Linux编译器 gcc/g++使用

目录 0.前言 1.C/C编译链接过程回顾 2.gcc如何完成编译链接 2.1预处理 2.2编译 2.3汇编 2.4链接 3.gcc编译选项 4.函数库 4.1静态库 4.2动态库 5.小结 &#xff08;图像由AI生成&#xff09; 0.前言 在Linux系统中&#xff0c;C/C编程的开发工具不可或缺&#xff0c;其中gcc…

写给非机器学习人员的 embedding 入门

你好&#xff0c;我是 shengjk1&#xff0c;多年大厂经验&#xff0c;努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注&#xff01;你会有如下收益&#xff1a; 了解大厂经验拥有和大厂相匹配的技术等 希望看什么&#xff0c;评论或者私信告诉我&#xff01; 文章目录 一…

合并两个有序数组(LeetCode)

题目 给你两个按 非递减顺序 排列的整数数组 和 &#xff0c;另有两个整数 和 &#xff0c;分别表示 和 中的元素数目。请你 合并 到 中&#xff0c;使合并后的数组同样按 非递减顺序 排列。 注意&#xff1a;最终&#xff0c;合并后数组不应由函数返回&#xff0c;而是…

Word中加载Mathtype后粘贴复制快捷键(Ctrl+C/V)不能使用

操作环境 windows 11操作系统 word版本2021 mathtype版本7.4 这个问题只出现在word中&#xff0c;在excel和ppt中都不存在这个问题&#xff0c;而且之前在另一台电脑中使用word2016版本并没有这种问题的&#xff0c;然后网上搜了一下有不少人有这种问题&#xff0c;word直接取…

nodejs/node-sass/sass-loader三者版本对应关系(已解决)

基本前提&#xff1a;了解版本对应关系 示例&#xff1a; 我的nodejs&#xff1a;v14.21.3&#xff0c; 则package.json: "node-sass": "^4.14.1", "sass-loader": "^8.0.0",扩展&#xff1a; 查看node历史版本&#xff1a; Node.js…

【数据结构-前缀哈希】力扣525. 连续数组

给定一个二进制数组 nums , 找到含有相同数量的 0 和 1 的最长连续子数组&#xff0c;并返回该子数组的长度。 示例 1: 输入: nums [0,1] 输出: 2 说明: [0, 1] 是具有相同数量 0 和 1 的最长连续子数组。 示例 2: 输入: nums [0,1,0] 输出: 2 说明: [0, 1] (或 [1, 0]) 是…

摸着石头过河的具身智能公司,正在寻求“确定性”

在种种不确定因素之下&#xff0c;对于具身智能&#xff0c;唯一可以确定的是&#xff0c;其未来巨大的市场空间。从纷纷入局的科技巨头、创业公司的市场现状即可窥见一二。而类比到自动驾驶&#xff0c;其也是抛开层层迷雾后才得以在今天看见曙光。 相信&#xff0c;于具身智…

高效报销管理:领先软件的综合评测

本文主要介绍了以下10款报销管理软件&#xff1a;合思、明道云、汇联易、畅捷通、慧算账、云之家、Ramp、Nexonia by Emburse、Rydoo、Expensify。 在处理财务报销时&#xff0c;你是否经常感到手续繁琐、效率低下&#xff1f;选择合适的软件系统&#xff0c;能够显著优化整个报…

亚信安全以安全守护的“星座”正闪耀太空

近日来&#xff0c;一个Made in China的“星座”闪耀太空&#xff0c;受到世界瞩目。“千帆星座”计划&#xff0c;首批18颗商业组网卫星成功发射升空&#xff0c;目前已顺利进入停泊轨道&#xff0c;见证了我国卫星互联网发展的重要时刻&#xff0c;未来将开启面相全球用户的低…

模块化叙事的演变:DeFi借贷开发的模块化转型

随着区块链技术的不断发展&#xff0c;去中心化金融&#xff08;DeFi&#xff09;正经历一场深刻的变革。模块化借贷作为这一变革的重要部分&#xff0c;正逐渐成为加密金融领域的焦点。本文将探讨模块化借贷的起源、演变及其未来发展方向。 一、模块化的起源 模块化区块链的概…

5.2二叉树的概念

5.2.1二叉树的定义 二叉树特点: ①每个节点最多只有两颗子树 ②二叉树的子树有左右之分,不能随意颠倒 ③二叉树为有序树 几种特殊的二叉树 满二叉树 除叶节点之外的每个节点度数均为2 对于编号i的节点,若有双亲,则双亲为i/2-向下取整 若有左孩子,则为2i;若有右孩子则为…

云计算实训24——python基本环境搭建、变量和数据类型、数据集合、py脚本

一、python环境搭建 确保拥有阿里云镜像 查看python环境 [rootpython ~]# yum list installed | grep python 查看epel是否安装 [rootpython ~]# yum list installed | grep epel 安装epel [rootpython ~]# yum -y install epel-release.noarch 查看是否安装python3 [rootpyt…

AI 点燃体育热情!使用 PAI-Artlab 定制专属海报

PAI ArtLab 是人工智能平台 PAI 为设计专业人士打造的 AIGC 智能设计工具&#xff0c;支持云端Stable Diffusion、Kohya 等主流文生图与模型训练应用&#xff0c;提供 AIGC 全场景能力。为了向在赛场上的奥运健儿传递最真挚的鼓舞与喝彩&#xff0c;我们特此发起一场别开生面的…

远程终端 XShell 下载安装配置使用(超详细)

今天给伙伴们分享一下VMware Workstation17 安装 Windows 10 操作系统&#xff0c;希望看了有所收获。 我是公众号「想吃西红柿」「云原生运维实战派」作者&#xff0c;对云原生运维感兴趣&#xff0c;也保持时刻学习&#xff0c;后续会分享工作中用到的运维技术&#xff0c;在…

【数学建模】简单的优化模型-5 不买贵的只买对的

背景 在琳琅满目的市场里选购商品&#xff0c;我们往往遵循 “不买贵的&#xff0c;只买对的” 的准则。然而哪些商品、买多少才是“对的”&#xff1f;这时候&#xff0c;我们需要用到&#xff0c;消费者追求最大效用&#xff08;经济学的最优化原理&#xff09;&#xff0c;…

java学习笔记 VSCode

2.管理员身份打开cmd,切换存文件的路径 2.输入下面命令创建文件 npm create vitelatest 将项目命名为easyb选择vue--->JavaScript 3,用管理员身份打开VSCode,打开刚刚创建的easyb 4.下载包 npm install npm install vue-router npm install axios npm install element-plus…

数据可视化入门:使用 Matplotlib、Numpy 和 SciPy 绘图

数据可视化是数据分析不可或缺的工具&#xff0c;它通过图形化手段帮助我们更直观地理解数据。Python拥有多种库来实现数据可视化&#xff0c;其中matplotlib、numpy和scipy是最常用的几个。本文将详细介绍如何使用这些库来创建各种图表和曲面。 环境搭建 在开始之前&#xf…