个人认为,异常会增加程序员的负担,还是像 C 那样使用返回错误、断言这些方式来捕捉错误比较简洁。
google 编码规范不建议使用异常。
为保证多态析构的正确性,需要为基类的虚构函数加上virtual
:
1 | #include <iostream> |
编译器默认会为一个类提供(如果它们需要被使用的话):
default
显示声明也可以在有其他构造函数的情况下,让编译器产生默认构造函数noexcept
生成的特殊函数是隐含的public
和inline
的,但大部分情况下都是非虚函数。
只有当一个类继承自基类,基类的析构函数是虚函数时,生成派生类的析构函数才也是虚函数
要养成好的习惯:永远在使用对象之前先将它初始化。
宏在 c++ 中要尽可能少的使用,在google c++ 编码规范中也是建议使用宏要谨慎。
谷歌 c++ 编码规范也比较推崇尽量使用const
。
两个 stm32 通过 SPI 进行通信,一主一从,但从机不能使用 CubeMX 的默认配置,不然会被带进坑……
QWidget 中就具有类 QTabWidget 以 Table 的方式来切换各个窗口,但是在 QtQuick 中并没有一个叫 TabWidget 的组件。
与之较为接近的便是 TabBar 这个组件,但其没有提供子窗口的动态增加和删除。
这里主要关注同类型窗口的动态创建