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语言写代码的时候开头要用到的是: #include<iostream> using namespace std;不可以写成这样: #include iostream.h(1)iostream是输入输出流类, istream输入流类 cin >> ostream输出流类 cout &…...
u盘误删的文件怎么找回
u盘误删的文件怎么找回?u盘的特点之一就是极其便携,可以容纳各种格式的数据和文件,需要时可以直接使用。每次使用都会或多或少的存放一些文件,但有使用就会有删除,为了不影响使用性,清理存储空间是必要的。清理中如果…...

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

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

RocketMQ的一些使用理解
1.RocketMQ的生产者生产负载策略(3种) (1)SelectMessageQueueByHash (一致性hash) (2)SelectMessageQueueByMachineRoom (机器随机) (3)SelectMessageQueueByRandom (随机) 第1种一…...

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

虚拟机上安装openKylin详细步骤总结
一、创建虚拟机 首先获取操作系统安装镜像文件: 链接:https://pan.baidu.com/s/1tSuXmDk2ZILR4ieee6iImw?pwdcy47 提取码:cy47 (1-1)进入新虚拟机创建向导,选择“自定义”: (1-…...
夜天之书 #74 企业开源的软件协议模型实践(Part 2)
在上一篇文章中,我介绍了企业开源的完全开放源码策略及其风险。完全开放源码,即以符合开源定义的软件协议发布企业自研软件的情形。本文介绍应对完全开放源码后的风险的第一种策略:提高市场占有率与开放标准。与其说是策略,不如说…...

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

KingbaseES V8R3 表加密
前言 透明加密是指将数据库page加密后写入磁盘,当需要读取对应page时进行加密读取。此过程对于用户是透明, 用户无需干预。 该文档进行数据库V8R3版本测试透明加密功能,需要说明,该版本发布时间早于V8R6,所以只能进行表…...
2 为社么软件架构很重要?
2 为社么软件架构很重要? 啊,建造,建造! 这是所有艺术中最崇高的艺术。 — 亨利沃兹沃思朗费罗 如果架构是答案,那么问题是什么? 本章从技术角度重点介绍架构的重要性。我们将研究面包师的十几个最重要…...

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

MySQL实战之深入浅出索引(下)
1.前言 在上一篇文章中,我们介绍了InnoDB索引的数据结构模型,今天我们再继续聊一下跟MySQL索引有关的概念。 在介绍之前,我们先看一个问题: 表初始化语句 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: 输入&…...
yaml文件格式详解及实例
🍁博主简介 🏅云计算领域优质创作者 🏅华为云开发者社区专家博主 🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 文章目录yaml简介yaml语法规则Yaml语法实例数组…...

AOP在PowerJob中的使用,缓存锁保证并发安全,知识细节全总结
这是一篇简简单单的文章,需要你简简单单看一眼就好,如果有不明白的地方,欢迎留言讨论。 在之前的文章中出现过一次AOP的使用,就是在运行任务之前,需要判断一下,触发该任务执行的server,是不是数…...

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

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

我带过的一名C++实习生——Z同学
刚开始带Z同学,吃饭聊天时,我顺便了解了下他的擅长:linux平台下C、C网络编程。 接下来的实习,主要分为两个阶段:小组公共培训和项目实训。 小组公共培训为期2周,主要学习和了解公司文化制度,讲师…...
面试题13. 机器人的运动范围
面试题13. 机器人的运动范围 难度:middle\color{orange}{middle}middle 题目描述 地上有一个 mmm 行 nnn 列的方格,从坐标 [0,0][0,0][0,0] 到坐标 [m−1,n−1][m-1,n-1][m−1,n−1] 。一个机器人从坐标 [0,0][0, 0][0,0] 的格子开始移动,它…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...
JS设计模式(4):观察者模式
JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中࿰…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...

【Veristand】Veristand环境安装教程-Linux RT / Windows
首先声明,此教程是针对Simulink编译模型并导入Veristand中编写的,同时需要注意的是老用户编译可能用的是Veristand Model Framework,那个是历史版本,且NI不会再维护,新版本编译支持为VeriStand Model Generation Suppo…...
DiscuzX3.5发帖json api
参考文章:PHP实现独立Discuz站外发帖(直连操作数据库)_discuz 发帖api-CSDN博客 简单改造了一下,适配我自己的需求 有一个站点存在多个采集站,我想通过主站拿标题,采集站拿内容 使用到的sql如下 CREATE TABLE pre_forum_post_…...
二维FDTD算法仿真
二维FDTD算法仿真,并带完全匹配层,输入波形为高斯波、平面波 FDTD_二维/FDTD.zip , 6075 FDTD_二维/FDTD_31.m , 1029 FDTD_二维/FDTD_32.m , 2806 FDTD_二维/FDTD_33.m , 3782 FDTD_二维/FDTD_34.m , 4182 FDTD_二维/FDTD_35.m , 4793...

java高级——高阶函数、如何定义一个函数式接口类似stream流的filter
java高级——高阶函数、stream流 前情提要文章介绍一、函数伊始1.1 合格的函数1.2 有形的函数2. 函数对象2.1 函数对象——行为参数化2.2 函数对象——延迟执行 二、 函数编程语法1. 函数对象表现形式1.1 Lambda表达式1.2 方法引用(Math::max) 2 函数接口…...