【小梦C嘎嘎——启航篇】C++ 基础中的精华(一)

news2024/11/25 6:46:07

C++ 基础中的精华(一)😎

  • 前言🙌
    • 1、namespace(命名空间)的经典知识
      • 1.1 namespace 日常如何正确使用?
      • 1.2 cout和cin来源,以及为什么相对于C语言中的printf和scanf有自动识别数据类型的功能?
      • 1.3经典面试题:用C嘎嘎语言编写输出:hellow work !
    • 2、缺省参数经典知识
      • 2.1 全缺省
      • 2.2 半缺省
      • 2.3 缺省参数的注意事项
    • 3、函数重载
    • 4、引用
  • 总结撒花💞

追梦之旅,你我同行

   
😎博客昵称:博客小梦
😊最喜欢的座右铭:全神贯注的上吧!!!
😊作者简介:一名热爱C/C++,算法等技术、喜爱运动、热爱K歌、敢于追梦的小博主!

😘博主小留言:哈喽!😄各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话不多说,文章推上!欢迎大家在评论区唠嗑指正,觉得好的话别忘了一键三连哦!😘
在这里插入图片描述

前言🙌

    哈喽各位友友们😊,我今天又学到了很多有趣的知识现在迫不及待的想和大家分享一下!😘我仅已此文,手把手带领大家学习C++基础课(一)~ 都是精华内容,可不要错过哟!!!😍😍😍

1、namespace(命名空间)的经典知识

1.1 namespace 日常如何正确使用?

// 标准库的东西都放到std
// 1、项目中,尽量不要using namespace std;
// 2、日常练习用using namespace std;
// 3、项目,指定名空间访问+展开常用



举个栗子:
#include<iostream>
//#include<iostream.h> 旧的编译器支持,新编译器不支持

#include<vector>
//using namespace std;
using std::cout;
using std::endl;

int main()
{
	std::vector<int> v;
	v.push_back(1);
	v.push_back(2);
	v.push_back(3);
	v.push_back(4);

	cout << "hello bit" << endl;
	cout << "hello bit" << endl;
	cout << "hello bit" << endl;
	cout << "hello bit" << endl;

	return 0;
}

1.2 cout和cin来源,以及为什么相对于C语言中的printf和scanf有自动识别数据类型的功能?

相对于C语言中的printf和scanf有自动识别数据类型的功能:是由于运算符重载。

/ IO 流
//int main()
//{
//	// 特点:自动识别类型
//	int i;
//	double d;
//	// >> 流提取
//	cin >> i >> d;
//
//	// << 流插入
//	cout << i << endl;
//	//cout << i << '\n';
//	cout << d << endl;
//	printf("%.2lf\n", d);
//
//	cout << "hello world" << endl;
//
//	return 0;
//}

1.3经典面试题:用C嘎嘎语言编写输出:hellow work !

一般程序员写的代吗:

#include<iostream>
using namespace std;

int main()
{
    cout << "hellow work !" << endl;
    return 0;
}

好的程序员这样写代码:

#include<iostream>
using std::cout;
using std::endl;

int main()
{
    cout << "hellow work !" << endl;
    return 0;
}

2、缺省参数经典知识

2.1 全缺省

指的是对参数列表都缺省。

2.2 半缺省

对参数列表部分缺省

2.3 缺省参数的注意事项

  1. 函数定义和声明不能同时出现缺省参数的定义。只有在函数声明定义缺省参数才有效,函数定义时定义无效。

  2. 在参数列表中,只能从右往左连续缺省,不能间隔。

  3. 在调用函数传参时,只能从左往右连续传参,不能跳过缺省参数。

在这里插入图片描述

// 全缺省
void TestFunc(int a = 10, int b = 20, int c = 30)
{
	cout << "a = " << a << endl;
	cout << "b = " << b << endl;
	cout << "c = " << c << endl << endl;
}

int main()
{
	TestFunc();
	TestFunc(1); // 从左往右给
	//TestFunc(,,1); // 不支持
	TestFunc(1, 2);
	TestFunc(1, 2, 3);

	return 0;
}
  1. 缺省参数可以让参数赋值更加的灵活。如果知道我一定会插入100个数据,就可以显示传参数100
    提前开好空间,插入数据避免扩容。

3、函数重载

函数重载的意义就是让用的地方很方便,就像用同一个函数一样(本质上不一样)

  • 函数重载是为了解决C语言中的坑。在C语言中,是不支持两个同名函数的,会引起命名冲突,C嘎嘎很好的引入了函数重载解决这个坑。

    实现函数重载有三种形式:

  • 参数个数不同

  • 参数类型不同

  • 参数顺序不同(所有参数一开始就不是完全一样的类型的情况下)

4、引用

引用,简单的来讲就是为已经存在的对象(变量)起个别名,而不是新定义一个对象(变量)。编译器不会为引用开辟空间,引用和对象共用一块空间。

  • 引用定义一定要初始化(指明要给哪个对象起别名)
  • 一个对象可以有多个引用(一个对象可以有多个别名)
  • 引用一旦引用一个实体,就不能够引用另外一个实体。(给这个人起个别名泰哥,就不能给其他人起这个别名,不然会导致区分不清)

传值返回:
引用返回:
在这里插入图片描述

总结撒花💞

   本篇文章旨在分享的是C++ 的相关基础但是有很经典的知识。希望大家通过阅读此文有所收获
   😘如果我写的有什么不好之处,请在文章下方给出你宝贵的意见😊。如果觉得我写的好的话请点个赞赞和关注哦~😘😘😘

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

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

相关文章

记一次用arthas解决springboot项目引入ShardingSphere后启动过慢的问题

背景&#xff1a; springboot项目中由于需要加入了ShardingSphere&#xff0c;之后就发现项目启动时间由之前的十多秒&#xff0c;延长到了70秒左右&#xff0c;去除ShardingSphere之后又恢复十多秒。一直以为是ShardingSphere的问题&#xff0c;网上搜罗了各种信息&#xff0c…

华安联大 | 蓝牙人员定位与UWB人员定位技术的应用案例分析

引言&#xff1a;随着物联网和定位技术的快速发展&#xff0c;蓝牙人员定位和UWB人员定位成为了人员定位领域的两种重要技术&#xff0c;两者都能在安防、工业、矿山、救灾、海航等领域得到广泛的应用。 在这有用户或会问蓝牙人员定位和UWB人员定位谁优谁劣&#xff0c;那么这…

2023.7.5例题:HCIA初级实验-2

一、题目要求&#xff1a; 1.在AR1左侧使用DHCP协议使左边可自动获得ip,左侧为192.168.1.0网段ip 2.右侧使用手动配置ip---右侧为192.168.2.0网段ip 3.telent客户端可远程登录到AR1 4.笔记本可以访问DNS获取文件 5.全网可达 二、解题步骤 第一步&#xff1a; 在AR1左侧使…

Charles 工具如何做断点测试?

在测试工作过程中&#xff0c;我们经常会在程序的某一行或者某一环节设置断点&#xff0c;在程序请求的过程中&#xff0c;修改断点处的参数、请求或者响应&#xff0c;借此定位问题&#xff0c;这就是所谓的断点测试。这类断点测试主要用于接口测试。 断点测试可以通过查看接…

高效制作财务报表的秘诀:探索财务报表工具和快速制作方法

财务报表是公司重要的财务信息输出形式&#xff0c;是反映公司经济活动和财务状况的一个重要工具。在日常业务运营中&#xff0c;财务报表可以帮助经理人与投资者了解企业的经营情况&#xff0c;为决策提供数据支持。 尽管Excel在制作各种类型的报表方面具有很好的功能&#xf…

记录力扣热题-100——从链表中找到刷题感觉

目录 一. &#x1f981; 前言二. &#x1f981; 解题过程1. 题目2. 思路一3. 思路二 三. &#x1f981; 文末活动内容简介本书结构关于代码 一. &#x1f981; 前言 狮子此前已经很久没有碰过算法题了&#xff0c;对于之前好不容易攒起来的题感又没了…最近准备面试&#xff0…

【Linux从入门到精通|开发工具】---gcc/g++的基本使用

个人主页&#xff1a;平行线也会相交 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 平行线也会相交 原创 收录于专栏【Linux专栏】&#x1f388; 本专栏旨在分享学习Linux的一点学习心得&#xff0c;欢迎大家在评论区讨论&#x1f48c; 接下来我们来学习L…

ROS:节点运行管理launch文件

目录 一、launch文件1.1概念1.2作用1.3实例1.新建launch文件2.调用 launch 文件 二、<launch>三、node四、include五、remap六、param七、rosparam八、group九、arg 一、launch文件 1.1概念 aunch 文件是一个 XML 格式的文件&#xff0c;可以启动本地和远程的多个节点&…

Redis从入门到精通【进阶篇】之对象机制详解

文章目录 0. 前言1. 详解1.1 redisObject 对象设计目的1.2 redisObject数据结构1.2 Redis 是如何使用redisObject1.2.1. 对象创建1.2.2. 对象引用计数1.2.3. 对象共享1.2.4. 对象的编码方式1.2.4. 对象的值 2. 总结2.1. redisObject对象如何实现数据共享和对象池技术&#xff1…

vue项目打包并配置到iOS工程中

一、修改vue项目的配置文件 将config文件夹里面的index.js中的 assetsPublicPath的值修改为“./” Webpack.prod.conf.js 中output添加参数publicPath:./ 在webpack.base.conf.js里 publicPath: process.env.NODE_ENV 生产 &#xff1f;./ config.build.assetsPublicPath :…

Compose编排工具应用

补充&#xff1a; Docker Compose 文件&#xff1a;Docker Compose 是一个用于定义和运行多个 Docker 容器的工具。它使用 YAML 文件格式来描述应用程序的各个组件和其配置。以下是一个简单的示例&#xff1a; 在上面的示例中&#xff0c;我们定义了两个服务&#xff1a;web 和…

SpringBoot 之实现 PDF 添加水印的方案

简介 PDF&#xff08;Portable Document Format&#xff0c;便携式文档格式&#xff09;是一种流行的文件格式&#xff0c;它可以在多个操作系统和应用程序中进行查看和打印。在某些情况下&#xff0c;我们需要对 PDF 文件添加水印&#xff0c;以使其更具有辨识度或者保护其版…

ChatGLM2-6B的P-Tuning微调

ChatGLM2-6B&#xff1a;https://github.com/THUDM/ChatGLM2-6B 模型地址&#xff1a;https://huggingface.co/THUDM/chatglm2-6b 详细步骤同&#xff1a;ChatGLM-6B的P-Tuning微调详细步骤及结果验证 环境可复用ChatGLM-6B&#xff08;上述部署教程&#xff09;&#xff0c;…

简要介绍 | 知识蒸馏:轻量级模型的智慧之源

注1&#xff1a;本文系“简要介绍”系列之一&#xff0c;仅从概念上对知识蒸馏进行非常简要的介绍&#xff0c;不适合用于深入和详细的了解。 知识蒸馏&#xff1a;轻量级模型的智慧之源 A Gentle Introduction to Hint Learning & Knowledge Distillation | by LA Tran | …

Some about RMI

&#xff08;备份防止忘掉&#xff09; 一开始编译javac所有文件 这个问题概率遇到 解决方法&#xff1a; 然后java编译impl文件 直到出现bound in registry这一句 然后这个cmd不要关掉 重新在eclipse这个类的工作路径打开一个cmd 看到这个之后回到eclipse里面运行app这个文…

数据结构--树的性质

数据结构–树的性质 树的常考性质 常见考点 1 : 结点数 总度数 1 \color{red}常见考点1:结点数总度数1 常见考点1:结点数总度数1 结点的度 ―― 结点有几个孩子(分支) 树的度 ―― 各结点的度的最大值 m叉树 ―― 每个结点最多只能有m个孩子的树 常见考点 2 : 度为 m 的树、…

MySQL安装以及体系结构

1.简述mysql体系结构 MySQL 最重要、最与众不同的特性是它的存储引擎架构&#xff0c;这种架构的设计将查询处理 &#xff08;Query Processing&#xff09;及其他系统任务&#xff08;Server Task&#xff09;和数据的存储/提取相分离。这种 处理和存储分离的设计可以在使用时…

【简单认识LVS及LVS-NAT负载均衡群集的搭建】

文章目录 一、LVS群集简介1、群集的含义2、性能扩展方式3、群集的分类4、负载均衡群集架构1、负载均衡的结构 5、三种负载调度工作模式1、NAT模式2、TUN模式3、DR模式 二、LVS虚拟服务器1、Linux Virtual Server简介2、启用LVS虚拟服务3、LVS调度算法&#xff08;1&#xff09;…

YoloV5/YoloV7改进---注意力机制:高斯上下文变换器GCT,性能优于ECA、SE等注意力模块 | CVPR2021

目录 1.GCT介绍 实验结果 2.GCT引入到yolov5 2.1 加入common.py中&#xff1a; 2.2 加入yolo.py中&#xff1a; 2.3 yolov5s_GCT.yaml 2.4 yolov5s_GCT1.yaml 1.GCT介绍 论文&#xff1a;https://openaccess.thecvf.com/content/CVPR2021/papers/Ruan_Gaussian_Context_Tra…

Spring源码解析(二):bean容器的创建、默认后置处理器、扫描包路径bean

Spring源码系列文章 Spring源码解析(一)&#xff1a;环境搭建 Spring源码解析(二)&#xff1a; 目录 一、Spring源码基础组件1、bean定义接口体系2、bean工厂接口体系3、ApplicationContext上下文体系 二、AnnotationConfigApplicationContext注解容器1、创建bean工厂-beanFa…