c++自记录

类内部的静态变量的定义和赋值:

这里不理解还是,留下引子。

这里是在类中创建了一个静态整型变量_scount,一个普通整型变量_a,对于_scount而言,他的定义是自己在类外面直接进行的,所以要带上类型,因为这个时候它是定义去创建,要明确类型,即 int A::_scount =0; 但_a的定义不是直接进行的,它是我们在类外面实例化一个对象的时候,间接创建出来的,所以后面执行构造函数的时候,完成的是对已存在内容的初始化,这个时候它已经不是定义了。

类中静态变量和局部变量的使用

复制代码
class A
{
private:
	static int _k;
	int _h = 1;
public:
	class B
	{
	public:
		void foo(const A& aa)
		{
			cout << _k << endl;//由于_k是静态的,所以可以不指明是那哪个对象的
			cout << aa._h<< endl;//但_h是局部的,要指明属于哪个对象才行
		}
		int _b1;
	};

};

int A::_k = 1;

注意_k和_h使用的不同

在c++中,模板的定义和声明如果放在同一个文件和不同的文件,分别什么时候实例化

(按需实例化,在.cpp文件中如果模板函数没有被使用,那么就不会实例化出一个函数,那么编译的结果.o文件中,就不会有这个函数)

类模板的类型的缺省值

:缺省值在函数中形参是从右往左赋值

c++中的继承中的虚函数表问题

:在子类继承多个父类的情况下,子类中的重写虚函数放到对应父类的虚函数表中,而子类中的非重写的虚函数则放到第一个父类的虚函数表的重写虚函数的后面;(行为是先继承父类的虚函数表,这个时候的内容还是父类的虚函数,然后将子类中重写的虚函数覆盖父类的虚函数表中的对应的虚函数,接着将父类中没有的,也就是子类非重写的虚函数放在最后。三步:先继承,再覆盖,最后追加子类自己的)。

:当有连续继承时,即第二个子类继承多个父类,第三个子类继承第二个子类(B继承A,C继承B的请情况),此时,第二个子类的虚函数表是多个(每一个父类都有一个),且自己的虚函数是分布在这几个虚函数表中的,第三个子类是直接完整的继承下第二个子类的这些虚函数表,而不是整合成一个整体,如果第三个子类有新的重写的虚函数,则还是覆盖原来的,然后也在第一个继承的表中追加上自己的非重写的虚函数,也是三步:先继承,再覆盖,最后追加自己的。

:在第二个情况的情况下,还有第三个子类可能并不拥有最开始父类虚函数访问权限的情况,这种是编译时会检查权限,没有权限的话会直接报错,不生成对应的机器码。而为什么还是要继承第二个子类的虚函数表是要保证第三个子类中第二个子类的完整性。但这一点还是不太理解

子类继承多个父类的情况

连续继承

父类虚函数访问权限

memcpy函数

memcpy完成的是拷贝指针所指向空间的指定数量的内容,原封不动的以字节为单位拷贝,如果内空间中的内容是指针,那么拷贝的就是指针,也就是浅拷贝。

assert函数的使用:

指针引用

:从右往左看,先是对象str,然后&,说明它是个引用,然后是* ,是个指针的引用,后面是char类型的,最后是const 修饰前面的,即*str,也就是,指针指向的内容不可以修改,但这里没有修饰str的const,所以str可以修改,但在传参时,会有临时对象,临时对象具有常性,那此时的str时非常量的引用,就会导致权限方法,导致出错(非常量的引用具有常性的临时变量)

在vs中如何一次注释掉多行代码

默认参数只在声明中出现一次

strstr函数

:strstr()用于在一个字符串中搜索第一次出现的字串;第一个形参是源字符串,第二个参数是子字符串。如果找到则返回对应的起始指针,否则的话返回空指针。

相关推荐
码兄科技18 小时前
Java AI智能体开发实战:从零构建智能对话系统指南
java·开发语言·人工智能
折哥的程序人生 · 物流技术专研18 小时前
第8篇:六大设计原则在工厂模式中的体现
java·设计模式·设计原则·工厂模式·编程进阶·扩充系列
问君能有几多愁~18 小时前
C++ 数据结构复习笔记
数据结构·c++·笔记
小明bishe1819 小时前
计算机毕业设计之基于JAVA的植物科普网站
java·spring boot·spring·架构·课程设计
tntxia19 小时前
C++ 基础教程:从入门到精通
c++
Drone_xjw19 小时前
从 GDB 到 CDB:C/C++ 程序调试的两把“手术刀”
c语言·开发语言·c++
r_oo_ki_e_19 小时前
Java Map 集合学习笔记
java·笔记·学习
SL-staff19 小时前
智慧园区2000+设备统一管理:JVS-IoT如何降低运维成本40%
java·开发语言·物联网·智慧园区·设备管理·运维优化·jvs-iot
咖啡八杯20 小时前
GoF设计模式——模板方法模式
java·后端·spring·设计模式
爱笑的源码基地21 小时前
一款全开源的信创云PACS影像云平台解决方案,支持多模态医学影像处理(CT/MR/DR/超声/病理等)
java·源码·国产化·pacs·云影像·区域pacs