结构化绑定(C++17, C++20) 学习笔记
结构化绑定
在python中是能够很轻易地实现多个返回值的函数的,例如:
def return_multi_values():
return 100, 20
x, y = return_multi_values()
但是在C++应该是会用类、结构体或者引用来实现,在C++11之后也引入了std:[……]
在python中是能够很轻易地实现多个返回值的函数的,例如:
def return_multi_values():
return 100, 20
x, y = return_multi_values()
但是在C++应该是会用类、结构体或者引用来实现,在C++11之后也引入了std:[……]
重写(override)、重载(overload)和隐藏(overwrite)在C++完全不同的概念,先梳理一下区别:
重写的意思更加接近于覆盖,在C++中是指派生类覆盖了基类的虚函数,这里的覆盖必须满足有相同的函数签名和返回类型,即重写是有相同的函数名、形参列表以及返回类型[……]
原来继承自C语言的枚举类型在C++之父看来是一个奇怪且半生不熟的概念。
虽然枚举类型可以避免A类型赋值给B类型,但是:
虽然有很多缺点,但依然是建议使用枚举而不是const int来做枚举,那样问题只会更多。[……]
在C++中定义一个类,会默认生成以下6个成员函数:
这些功能很实用,在我们直接定义一个类之后,能够直接互相拷贝,而不用为了编译器语法的原因一定要写[……]
最近开始听Youtube上一个大佬自研引擎的开发全过程,本篇是我做的笔记。
这篇视频介绍了他对于EventSystem的初步规划和开发,首先我因为用python很多,很习惯于不提前把一切事件都定义好,EventSystem就应该是外部可以定义Event,并且可以发布E[……]
fiber是纤程,用户级纤程,在用户层提供调度管理器,可以在系统线程上切换纤程,它主要的好处:
引用
菱形继承:菱形继承的问题在于数据冗余和二义性。
将子类转化成爷爷类的时候会报错,因为不知道要转化到哪个类上去,这里需要加入static_cast才行。爷爷类会在两个父类中都被定义,解决的办法是:虚拟继承。
虚拟继承让被菱形继承的父类只会存在一份,消除数据冗余,那这里就得问一下,内存是如何布[……]
习题答案:https://github.com/changkun/modern-cpp-tutorial/tree/master/exercises
本文传统C++ 是指C++ 98及之前的标准。
C++ 14/17是对C++ 11的重要补充和优化;而C++ 20则将这门语言领进了现代化的大门[……]