CPP知识点记录总结

 1、类的const成员函数

const成员函数的const 实际修饰的是该成员函数隐含的this指针,表明在该成员函数中不能对类的任何成员进行修改。

class A {void fun() const {// 常成员函数,在函数名后用const修饰}
}

一文带你入门C++类和对象【十万字详解,一篇足够了】_c++ 入参是对象类型-CSDN博客

2、类模板template

一同感受C++模版的所带来的魅力-CSDN博客

template<typename T1, typename T2>
class A {// 使用T1 T2// 类外定义成员函数时,也需要添加 template<typename T1, typename T2>
};

注:1、模板声明只允许在全局、命名空间或类范围内使用!故不能在main函数中直接定义。

2、使用模板时,声明和定义不在同一个文件会出问题:

模板的声明是在.h文件,定义是在.cpp文件,因编译时只产生声明的代码,故编译不会出错,但是当调用时会产生找不到类或者函数的问题。

解决方法:1、将模板的声明和定义放在同一个文件中;2、主函数中调用#include<.cpp>或者将.cpp文件改为.hpp文件再引用。

3、CPP中 '' 和 "" 的区别

c++中' '和“ ”的区别_c++""与-CSDN博客

"a"是字符串,会在结尾添加\0;        而'a'是字符,只有单个字符。

实际上,"a"在内存中一般占2个字节,即 sizeof("a")=2,因为它后面还有一个\0结束符

单引号里的内容表示是字符,所以 sizeof('a')=1

 因此字符串可以是"abcde"这样的,而 'abcde' 这样就是错误的。

注意:在C语言中,sizeof('a')=4(字符在C语言中是用int型数据存储的)。

4、CPP字符数组的两种初始化方式

首先,对于给定的 字符数组 char c[3]; 通过 cout<<c; 进行输出,会直接输出数组c里面保存的内容,直到遇见结束符\0为止。如果在字符数组里面没有结束符,那么会继续一直向后输出...

对于字符数组 char c[2] ,可以通过两种方式初始化:

(1)使用普通数组形式初始化

char c[2];    //随机分配值
cout<<c;    //输出字符串,cout直到\0才停止的,输出为烫烫烫烫。。。char c[2]={'f'};    //c[1]的值为\0;
cout<<c;    //只会输出f,因为系统自动添加\0了,输出为fchar c[2]={'f','u'};
cout<<c;    //输出字符串,cout直\0才停止的,所以输出是fu烫烫烫...

(2)字符串形式初始化

char c[2]="fu";  //系统报告错误,因为如果按字符串使用字符数组,要留一位\0char c[2]="f";  //正确

总结:字符数组虽然可以当作字符串来用,但是有限制。

 1、初始化时要预留一位\0(系统会默认添加),输出字符串时才可以不至于烫烫;

 2、输出时cout<<str, str为数组名,cout当检测要输出字符串时,输出规则是 直到遇到\0才会停止,这也是烫烫的原因。

5、

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

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

相关文章

谷歌正在试行人脸识别办公室安全系统

内容提要&#xff1a; &#x1f9ff;据美国消费者新闻与商业频道 CNBC 获悉&#xff0c;谷歌正在为其企业园区安全测试面部追踪技术。 &#x1f9ff;测试最初在华盛顿州柯克兰的一间办公室进行。 &#x1f9ff;一份内部文件称&#xff0c;谷歌的安全和弹性服务 (GSRS) 团队将…

【android】【adb shell】写一个shell脚本,监听进程pid变化

前言 当前业务&#xff0c;需要写一个脚本&#xff0c;不断监视com.android.phone 进程是否异常死掉 脚本 #!/system/bin/sh last_pid"" current_pid"" while(true){current_pidps -A | grep com.android.phone | awk {print $2}if [ -n "$current…

uni-appx,实现登录功能,弹窗功能。组件之间传值

这篇文章的内容使用组合式API实现的&#xff0c;只有弹窗部分有选择式API的写法介绍。如果想要看其他选择式API&#xff0c;还请下载官方的hello-uni-appx源码进行学习&#xff0c;查看。想要看组合式API的写法&#xff0c;请查看源码 hello-uvue。 hello-uni-appx源码 相比于…

Vue如何处理错误图片路径时换成另一张准备好的图片

在Vue中处理错误图片路径&#xff08;即当图片无法加载时&#xff09;并替换为另一张准备好的图片&#xff0c;可以通过几种方式实现。这里介绍两种常用的方法&#xff1a; 方法1&#xff1a;使用HTML的<img>标签的onerror事件 这是最直接的方法&#xff0c;可以直接在…

Vue + Element UI + JSEncrypt实现简单登录页面

安装依赖 npm install jsencrypt --save局部引入 import JSEncrypt from jsencrypt/bin/jsencrypt;登录页面index.vue <template><div class"loginbody"><div class"logindata"><div class"logintext"><h2>Wel…

Uncaught (in promise) RangeError: Offset is outside the bounds of the DataView

问题 通常发生在Failed to load resource: the server responded with a status of 404 (Not Found) 后&#xff0c;资源读取错误导致的问题。 解决 Failed to load resource: the server responded with a status of 404 (Not Found)_unity webgl failed to load resource:…

宝塔面板Nginx的https301跳转http

宝塔面板Nginx的https301跳转http&#xff1a; 登录宝塔面板&#xff1a;进入你的宝塔面板管理界面。 选择网站管理&#xff1a;在左侧菜单中&#xff0c;点击“网站”&#xff0c;然后选择你需要进行重定向的网站。 配置网站设置&#xff1a;在所选网站的管理界面中&#x…

Docker 容器网络互连 自定义网络 程序互相访问

介绍 在开发时候SpirngBoot应用需要连接Mysql数据库 &#xff0c;两个都在容器内&#xff0c;而容器都是独立的&#xff0c;这时需要配置容器内的网络互联。一旦两个容器加入了自定义网络就可以使用容器名互相访问。 Docker虚拟网卡 在安装Docker时候他会默认安装一个虚拟网…

LVS-DR群集

LVS-DR集群 LVS-DR(Linux Virtual Server DIrector Server)工作模式&#xff0c;是生产环境中最常用的一种工作模式。 LVS-DR工作原理 LVS-DR模式&#xff0c;Director Server作为群集的访问入口&#xff0c;不作为网关使用&#xff0c;节点DirectorServer与Real Server需要…

TensorRT-Int8量化详解

int8量化是利用int8乘法替换float32乘法实现性能加速的一种方法 对于常规模型有&#xff1a;y kx b&#xff0c;此时x、k、b都是float32, 对于kx的计算使用float32的乘法 对于int8模型有&#xff1a;y tofp32(toint8(k) * toint8(x)) b&#xff0c;其中int8 * int8结果为in…

2024.06.27 校招 实习 内推 面经

绿*泡*泡VX&#xff1a; neituijunsir 交流*裙 &#xff0c;内推/实习/校招汇总表格 1、提前批 | 禾赛科技2025届校招/提前批招聘 提前批 | 禾赛科技2025届校招提前批招聘 2、提前批 | CVTE2025校园招聘/提前批正式启动&#xff08;内推&#xff09; 提前批 | CVTE2025校园…

Python列表创建使用心得详解

概要 列表是Python中最常用的数据结构之一,它用于存储有序的元素集合。Python提供了多种方式来创建和操作列表,使得列表在数据处理、存储和操作中非常灵活。本文将详细介绍Python列表创建的各种技巧,包括基础创建方法、列表推导式、内置函数和高级创建技巧,并包含具体的示…

锁定依赖的秘诀:npm shrinkwrap命令深度解析

&#x1f512; 锁定依赖的秘诀&#xff1a;npm shrinkwrap命令深度解析 &#x1f512; 在JavaScript项目开发中&#xff0c;依赖管理是确保项目稳定性和可重复构建的关键环节。npm作为Node.js的包管理器&#xff0c;提供了npm shrinkwrap命令&#xff0c;用于锁定项目依赖的确…

什么是 qobject_cast?

前言 在 C++ 中,类型转换是一项常见的操作,比如将 int 转换为 char 或将 QString 用于 QMessageBox。但是,为什么我们需要将一个类转换为另一个类呢?本文将解释 qobject_cast 是什么,它的作用以及为什么需要类型转换。 dynamic_cast 和 qobject_cast 的概述 什么是 dyn…

初出茅庐的小李博客之C语言文件操作

C语言文件操作 在C语言中&#xff0c;文件操作主要是通过标准库函数来实现的。 今天有时间就来学习下一些常用的文件操作函数&#xff1a; C 语言提供了一个 FILE 数据结构&#xff0c;记录了操作一个文件所需要的信息。该结构定义在头文件stdio.h&#xff0c;所有文件操作函…

python库(3):Cerberus库

1 Cerberus简介 Cerberus 是一个Python数据验证库&#xff0c;设计用于验证数据结构的有效性和一致性。它提供了一种简单而强大的方式来定义和应用验证规则&#xff0c;特别适用于处理用户输入的验证、配置文件的检查以及API的参数验证等场景。下面将详细介绍 Cerberus 的特点…

伦敦金价格走势图的资金管理怎么进行?

要成熟地交易伦敦金价格走势图&#xff0c;其实并不是一件容易的事情。其一&#xff0c;我们在很多广告或者周边朋友的宣传之下&#xff0c;觉得它能够帮助我们很快之内实现很多的财富增值&#xff0c;其二&#xff0c;很多投资者觉得伦敦金交易虽然不错&#xff0c;但是风险好…

salesforce 批量下载文件为 attachment 时需要最后保存

future(callouttrue) public static void processCaseLinks(String caseId) {// 提取描述中的链接Case caseRecord [SELECT Id,Description FROM Case WHERE Id:caseId];List<String> links extractLinks(caseRecord.Description);List<Attachment> attachmentsT…

对象被优化以后才是高效的C++编程

课程总目录 文章目录 一、对象会调用哪些方法、对象优化的三个原则二、CMyString的代码问题三、四、添加带右值引用参数的拷贝构造和赋值函数五、CMyString在vector上的应用六、move移动语义和forward类型完美转发七、再聊vector容器使用对象过程中的优化 一、对象会调用哪些方…

Python从0到100(三十六):字符和字符集基础知识及其在Python中的应用

1. 字符和字符集概述 字符(Character)是构成书面语言的基本元素&#xff0c;它包括但不限于各国家的文字、标点符号、图形符号和数字。字符集(Character set)则是一个包含多个字符的系统&#xff0c;用于统一管理和编码不同的字符。 常见字符集 ASCII&#xff1a;最早的字符…