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

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.lryc.cn/news/390905.html

相关文章:

  • Spring源码(一) 如何阅读 Spring 源码
  • 【代码随想录训练营】【Day 63】【单调栈-2】| Leetcode 42, 84
  • CTF常用sql注入(一)联合注入和宽字节
  • 薄冰英语语法学习--冠词1
  • 基于Java中的SSM框架实现野生动物公益保护系统项目【项目源码+论文说明】计算机毕业设计
  • c->c++(二):class
  • 11 UDP的可靠传输协议QUIC
  • 14-20 Vision Transformer用AI的画笔描绘新世界
  • LVS FILTER UNUSED OPTION
  • Python后端面试题
  • docker打包 arm32v7/debian 问题总结
  • 【HarmonyOS4学习笔记】《HarmonyOS4+NEXT星河版入门到企业级实战教程》课程学习笔记(二十)
  • Vuetify3:监听当前手机还是电脑
  • Zabbix 配置钉钉告警
  • TTL转RS232与USB转TTL
  • 【力扣 896】单调数列 C++题解(循环)
  • 代码随想录Day71(图论Part07)
  • [Mdp] lc 494. 目标和(01背包变种+dp+dfs)
  • React vs Vue:谁是构建现代Web应用的王者?
  • Linux CentOS 宝塔中禁用php8.2的eval函数详细图文教程
  • Matlab 中 fftshift 与 ifftshift
  • 被裁了(9年)
  • 13. Revit API: Filter(过滤器)
  • hadoop 3.X 分布式HA集成Kerbos(保姆级教程)
  • VDS虚拟导播切换台软件
  • UE4_材质_使用彩色半透明阴影
  • arthas监控工具笔记(二)monior等
  • 【mybatis】mybatis-plus中主键生成策略
  • 模型情景制作-如何制作棕榈树
  • # mysql 中文乱码问题分析