当前位置: 首页 > news >正文

C++ 认识和了解C++

1.在使用C++语言写代码的时候开头要用到的是:

#include<iostream>
using namespace std;

不可以写成这样:

#include iostream.h

(1)iostream是输入输出流类,
istream输入流类 cin >>
ostream输出流类 cout <<
(2)namespace是名空间,即命名空间
namespace是为了解决词穷的问题。
比如说有一个项目,有3个模块,需要3个人,三个人都写了排序函数 sort() sort() sort(),如果在C语言中,函数名不可以重复,在C++中就可以用namespace解决这一问题

namespace AA
{int sum = 0;void sort(){cout << "AA:sort" << endl;}
};
namespace BB
{int sum = 0;void sort(){cout << "BB:sort" << endl;}
};
namespace CC
{int sum = 0;void sort(){cout << "CC:sort" << endl;}
};
void main()
{using namespace AA;sort();BB::sort();CC::sort();
}

运行结果:
请添加图片描述
2.C语言和C++的区别
C语言:面向过程程序设计,体现的是编程思想,用流程图来体现
C++:面向对象程序设计,体现的是类的设计,用类图来体现
C语言可以解决问题,描述问题
C++是C语言的升级,可以更加方便的描述问题
3.struct 在C和C++中的区别
(1)在C中,结构体不能为空;C++中可以,在C++中,空结构体大小为1个字节
(2)在C中,结构体名就是结构体名;在C++中,作为类型名,可以直接定义变量
(3)在C++中,结构体也需要内存对齐
(4)在C中,结构体中不允许写函数,不允许有操作;在C++中允许

struct A
{char a[5];int b;void print() {}   //在C++中结构体中可以有操作
};
void main()
{A aa;    //在C++中结构体作为类型名可以直接定义变量cout << sizeof(A) << endl;
}

4.struct和class的区别
(1)struct可以实现和class一样的功能
(2)struct默认为public,class默认为private

struct AA
{int m_a;void print() { cout << m_a << endl; }
};
class BB
{int m_a;void print() { cout << m_a << endl; }
};
void main()
{AA a;a.m_a = 10;a.print();BB b;/*b.m_a = 20;b.print();*/    //这是错误的操作,class默认为private,成员BB::m_a不可以访问
}

5.三种变量类型:值类型,指针类型,引用类型
指针类型和引用类型的区别
不同点:
1.指针可以不初始化,引用必须初始化
2.指针通常初始化为NULL,引用不能为空
3.sizeof(指针)为4,sizeof(引用)实体大小
4.指针可以指向其他变量,引用不能改变
5.指针可以取*,引用不能

void main()
{int a = 10;char c = '2';char* p = &c;  //定义一个char类型的指针,指向cchar d = 'p';p = &d;    //改变指针的指向,让指针指向dcout << sizeof(p) << endl;int& b = a; //声明了引用b,是a的别名//引用在声明的时候必须初始化//int& c = NULL;  //error  引用不可以初始化为NULLb = 30;   //把a的值改变为30cout << a << endl;
}

6.野指针不是NULL指针,是指向垃圾内存的指针
(1)野指针可能声明时候出现,比如说定义指针变量声明的时候没有初始化,指针就是野指针
(2)free或者delete之后,没有把指针赋值为NULL
7.四种swap函数

//在不同的时间里修改了不同的内存单元中的值
void swap1(int x, int y)
{int t = x;x = y;y = t;
}
//在不同的时间里修改了同一段内存单元中的内容
void swap2(int* x, int* y)
{int t = *x;*x = *y;//将y所指向的内存空间里面的内容赋值到x所指向的内存单元中*y = t;
}
void swap3(int* x, int* y)
{int* t = x;x = y;y = t;
}
void swap4(int& x, int& y)//x是a的别名,y是b的别名
{int t = x;x = y;y = t;
}
void main()
{int a = 10, b = 6;swap1(a, b);cout << "a  = " << a << "  b = " << b << endl;swap2(&a, &b);cout << "a  = " << a << "  b = " << b << endl;swap3(&a, &b);cout << "a  = " << a << "  b = " << b << endl;swap4(a, b);cout << "a  = " << a << "  b = " << b << endl;
}

运行结果:
请添加图片描述
8.函数重载—重载多态
(1)函数名相同,同一个作用域
(2)参数列表不同()
(3)和返回值无关,不能光通过函数返回值确定重载
(4)const函数可以区别重载

struct AA
{void test() { cout << "AA::test" << endl; }void test()const { cout << "AA::test const" << endl; }
};
/*
error 不能构成重载
int test()
{
}*/
void test()
{cout << "test" << endl;
}
void test(int a)
{cout << "test(int)" << endl;
}
void test(int a, int b)
{cout << "test(int,int)" << endl;
}
void test(int a, int b, int c)
{cout << "test(int,int,int)" << endl;
}
void main()
{test();test(1);test(2, 6);test(3, 4, 5);
}

相关文章:

C++ 认识和了解C++

1.在使用C语言写代码的时候开头要用到的是&#xff1a; #include<iostream> using namespace std;不可以写成这样&#xff1a; #include iostream.h&#xff08;1&#xff09;iostream是输入输出流类&#xff0c; istream输入流类 cin >> ostream输出流类 cout &…...

u盘误删的文件怎么找回

u盘误删的文件怎么找回?u盘的特点之一就是极其便携&#xff0c;可以容纳各种格式的数据和文件&#xff0c;需要时可以直接使用。每次使用都会或多或少的存放一些文件&#xff0c;但有使用就会有删除&#xff0c;为了不影响使用性&#xff0c;清理存储空间是必要的。清理中如果…...

二分查找由浅入深--算法--java

二分查找写在开头算法前提&#xff1a;算法逻辑算法实现简单实现leftright可能超过int表示的最大限度代码分析和变换更多需求&#xff1a;求索引最小的值java二分API应用基础题思考难度方法写在开头 二分查找应该是算比较简单的这种算法了&#xff0c;我本以为还可以。但有时候…...

【学习】笔记本电脑重新安装系统win10

安装系统有很多方法: 软件安装制作启动u盘本文使用的方法就是启动盘安装: 1.首先下载iso镜像文件: msdn我告诉你:MSDN, 我告诉你 - 做一个安静的工具站 (itellyou.cn) 2.下载启动盘制作工具: 制作启动盘rufus:Rufus - 轻松创建 USB 启动盘 3.官网下载: https://do…...

RocketMQ的一些使用理解

1.RocketMQ的生产者生产负载策略&#xff08;3种&#xff09; (1)SelectMessageQueueByHash &#xff08;一致性hash&#xff09; (2)SelectMessageQueueByMachineRoom &#xff08;机器随机&#xff09; (3)SelectMessageQueueByRandom &#xff08;随机&#xff09; 第1种一…...

Java枚举详解

一.枚举 1.为什么有枚举&#xff1f; 如果我们的程序需要表示固定的几个值&#xff1a; 比如季节&#xff1a;spring (春)&#xff0c;summer(夏)&#xff0c;autumn(秋)&#xff0c;winter(冬) 用常量表示&#xff1a; public static final int SEASON_SPRING 1;public st…...

虚拟机上安装openKylin详细步骤总结

一、创建虚拟机 首先获取操作系统安装镜像文件&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1tSuXmDk2ZILR4ieee6iImw?pwdcy47 提取码&#xff1a;cy47 &#xff08;1-1&#xff09;进入新虚拟机创建向导&#xff0c;选择“自定义”&#xff1a; &#xff08;1-…...

夜天之书 #74 企业开源的软件协议模型实践(Part 2)

在上一篇文章中&#xff0c;我介绍了企业开源的完全开放源码策略及其风险。完全开放源码&#xff0c;即以符合开源定义的软件协议发布企业自研软件的情形。本文介绍应对完全开放源码后的风险的第一种策略&#xff1a;提高市场占有率与开放标准。与其说是策略&#xff0c;不如说…...

2.webpack实时打包

简介 上一章已经实现了使用 webpack 构建了一个简单的项目&#xff1b;但是我们发现&#xff0c;每次修改了 index.js 需要重新执行 cnpm run dev 命令重新构建 main.js&#xff1b;这在开发阶段是无法忍受的&#xff0c;因为这样调式将浪费大量的时间&#xff1b;还好 webpac…...

KingbaseES V8R3 表加密

前言 透明加密是指将数据库page加密后写入磁盘&#xff0c;当需要读取对应page时进行加密读取。此过程对于用户是透明&#xff0c; 用户无需干预。 该文档进行数据库V8R3版本测试透明加密功能&#xff0c;需要说明&#xff0c;该版本发布时间早于V8R6&#xff0c;所以只能进行表…...

2 为社么软件架构很重要?

2 为社么软件架构很重要&#xff1f; 啊&#xff0c;建造&#xff0c;建造&#xff01; 这是所有艺术中最崇高的艺术。 — 亨利沃兹沃思朗费罗 如果架构是答案&#xff0c;那么问题是什么&#xff1f; 本章从技术角度重点介绍架构的重要性。我们将研究面包师的十几个最重要…...

Python 之 Pandas merge() 函数、set_index() 函数、drop_duplicates() 函数和 tolist() 函数

文章目录一、merge() 函数1. inner2. left 和 right3. outer二、set_index() 函数三、drop_duplicates() 函数四、tolist() 函数五、视频数据分析案例1. 问题要求2. 解决过程在最开始&#xff0c;我们先导入常规的 numpy 和 pandas 库。 import numpy as np import pandas as …...

MySQL实战之深入浅出索引(下)

1.前言 在上一篇文章中&#xff0c;我们介绍了InnoDB索引的数据结构模型&#xff0c;今天我们再继续聊一下跟MySQL索引有关的概念。 在介绍之前&#xff0c;我们先看一个问题&#xff1a; 表初始化语句 mysql> create table T ( ID int primary key, k int NOT NULL DEFA…...

(二分查找)leetcode1539. 第 k 个缺失的正整数

文章目录一、题目1、题目描述2、基础框架3、原题链接二、解题报告1、思路分析2、时间复杂度3、代码详解三、本题小知识一、题目 1、题目描述 给你一个 严格升序排列 的正整数数组 arr 和一个整数 k 。 请你找到这个数组里第 k 个缺失的正整数。 示例 1&#xff1a; 输入&…...

yaml文件格式详解及实例

&#x1f341;博主简介 &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01; 文章目录yaml简介yaml语法规则Yaml语法实例数组…...

AOP在PowerJob中的使用,缓存锁保证并发安全,知识细节全总结

这是一篇简简单单的文章&#xff0c;需要你简简单单看一眼就好&#xff0c;如果有不明白的地方&#xff0c;欢迎留言讨论。 在之前的文章中出现过一次AOP的使用&#xff0c;就是在运行任务之前&#xff0c;需要判断一下&#xff0c;触发该任务执行的server&#xff0c;是不是数…...

对账平台设计

背景 随着公司业务的蓬勃发展&#xff0c;交易履约清结算业务的复杂性也在不断的增高&#xff0c;资金以及各种数据的一致性和准确性也变得越发重要。 以交易链路为例&#xff0c;存在着如下一些潜在的不一致场景&#xff1a; 订单支付成功了&#xff0c;但是订单状态却还是“…...

JavaEE进阶第五课:SpringBoot的创建和使用

上篇文章介绍了Bean 作用域和生命周期&#xff0c;这篇文章我们将会介绍SpringBoot的创建和使用 目录1.为什么要学习StringBoot1.1什么是SpringBoot1.2SpringBoot的优点2.如何用Idea创建SpringBoot项目3.项目目录介绍和运行3.1输入Helloworld结尾1.为什么要学习StringBoot 在前…...

我带过的一名C++实习生——Z同学

刚开始带Z同学&#xff0c;吃饭聊天时&#xff0c;我顺便了解了下他的擅长&#xff1a;linux平台下C、C网络编程。 接下来的实习&#xff0c;主要分为两个阶段&#xff1a;小组公共培训和项目实训。 小组公共培训为期2周&#xff0c;主要学习和了解公司文化制度&#xff0c;讲师…...

面试题13. 机器人的运动范围

面试题13. 机器人的运动范围 难度&#xff1a;middle\color{orange}{middle}middle 题目描述 地上有一个 mmm 行 nnn 列的方格&#xff0c;从坐标 [0,0][0,0][0,0] 到坐标 [m−1,n−1][m-1,n-1][m−1,n−1] 。一个机器人从坐标 [0,0][0, 0][0,0] 的格子开始移动&#xff0c;它…...

天学网口碑好不好?2026年最新用户实测反馈给你答案

作为深耕教育数字化落地领域5年的从业者&#xff0c;最近后台收到不少公立校电教组老师、学生家长的提问&#xff1a;主打AI英语教学的天学网口碑到底怎么样&#xff1f;刚好我们团队刚做完2026年第一季度的英语教育数字化工具落地效果调研&#xff0c;结合一手实测数据给大家客…...

免费开源鼠标连点器终极指南:5分钟掌握高效自动化技巧

免费开源鼠标连点器终极指南&#xff1a;5分钟掌握高效自动化技巧 【免费下载链接】MouseClick &#x1f5b1;️ MouseClick &#x1f5b1;️ 是一款功能强大的鼠标连点器和管理工具&#xff0c;采用 QT Widget 开发 &#xff0c;具备跨平台兼容性 。软件界面美观 &#xff0c;…...

MedAgentBench:大模型临床决策能力评估基准详解与应用

1. 项目概述&#xff1a;当大模型成为医疗决策的“实习生” 最近在医疗AI的圈子里&#xff0c;一个名为“MedAgentBench”的开源项目引起了不小的讨论。这个由斯坦福机器学习组&#xff08;Stanford ML Group&#xff09;发布的项目&#xff0c;其核心目标非常明确&#xff1a;…...

Git Worktree CLI工具:告别分支切换焦虑,实现高效并行开发

1. 项目概述与核心价值如果你和我一样&#xff0c;长期在多个Git分支间穿梭&#xff0c;同时维护着几个不同的功能特性或修复补丁&#xff0c;那你一定对那种在分支间反复切换、代码状态混乱、甚至不小心提交到错误分支的“切分支焦虑症”深有体会。传统的git checkout或git sw…...

别再只用高斯噪声了!手把手教你为DDPG算法注入‘惯性’:Ornstein-Uhlenbeck噪声的Python实现与调参实战

突破DDPG探索瓶颈&#xff1a;Ornstein-Uhlenbeck噪声的工程实践指南 在机器人控制或自动驾驶仿真这类连续动作空间的任务中&#xff0c;DDPG算法常因探索效率低下导致训练停滞。当智能体在MuJoCo环境中反复"原地踏步"时&#xff0c;问题往往不在于算法本身&#xf…...

从零制作LED智能面具:三种方案详解与避坑指南

1. 项目概述&#xff1a;三种不同段位的LED化妆面具制作如果你对闪烁的灯光和可穿戴电子设备着迷&#xff0c;一直想亲手做一个能在派对或演出中吸引眼球的智能面具&#xff0c;但又觉得无从下手&#xff0c;那这个项目就是为你准备的。我花了几个周末的时间&#xff0c;从最简…...

爱普生SG-8201CJ石英可编程振荡器:精准频率控制,高效能工业级应用首选

引言在电子设计中&#xff0c;晶振是不可或缺的元器件&#xff0c;它为整个系统提供精准的时间基准。然而&#xff0c;面对市场上琳琅满目的晶振产品&#xff0c;工程师们常常感到选型困难&#xff0c;特别是在需要高精度、高稳定性和快速交付的情况下。今天&#xff0c;我们就…...

为 Node js 服务配置 Taotoken 以实现异步 AI 内容生成

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 为 Node.js 服务配置 Taotoken 以实现异步 AI 内容生成 为 Node.js 应用添加 AI 生成能力&#xff0c;例如自动生成文章摘要或代码…...

VisualCppRedist AIO:一站式解决Windows系统依赖问题的开源神器

VisualCppRedist AIO&#xff1a;一站式解决Windows系统依赖问题的开源神器 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 在Windows生态中&#xff0c;超过80%…...

使用curl命令快速测试Taotoken大模型接口连通性与功能

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 使用curl命令快速测试Taotoken大模型接口连通性与功能 在接入大模型服务时&#xff0c;直接使用HTTP请求进行测试是一种高效且通用…...