![](https://img-blog.csdnimg.cn/20190927151132530.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++笔记
文章平均质量分 80
学习笔记
开始沸腾了
这个作者很懒,什么都没留下…
展开
-
c++学习笔记(14)-类的对象占用内存
很多C++书籍中都介绍过,一个class对象需要占用多大的内存空间。原创 2023-12-26 15:38:32 · 454 阅读 · 0 评论 -
c++学习笔记(12)-traits
C++ 中的 type traits 是一种技术,用于在编译期间判断、查询类型的属性。Type traits 可以帮助程序员在编译时进行类型判断,而不是在运行时判断,避免了程序中的不必要开销,并且可以提供更好的类型安全性。原创 2023-12-26 15:32:49 · 380 阅读 · 0 评论 -
c++学习笔记(11)-SFINAE
SFINAE 是 Substitution Failure Is Not An Error 的缩写,表示“替换失败不是一个错误”。指的是,当编译器遇到模板参数不符合要求的情况时,会跳过这个无法匹配的模板,继续寻找合适的模板。int。原创 2023-12-26 15:32:09 · 389 阅读 · 0 评论 -
c++学习笔记(10)-可变参数模板
可变参数模板是 C++ 中非常有用的语言特性,它支持在编译时处理任意数量和类型的参数,从而实现更加通用和灵活的编程方式,增加了模板的灵活性和扩展性,但是可读性差、编译时间长,需要开发者根据具体情况进行权衡和选择。原创 2023-12-26 15:31:17 · 413 阅读 · 0 评论 -
c++学习笔记(9)-模板基础
C++中的模板是一种通用的编程工具,可以生成可应对多种数据类型的代码。通过使用模板,可以编写可以处理不同类型数据的函数和类,并提高代码的可重用性和灵活性。原创 2023-12-26 15:30:41 · 384 阅读 · 0 评论 -
c++学习笔记(8)-内存对齐
C++11中的内存对齐特性可以帮助开发人员更好地控制内存对齐规则,从而提高程序的性能和节省内存空间。在实际开发中,需要根据具体应用场景选择适当的内存对齐方式。原创 2023-12-26 15:28:35 · 558 阅读 · 1 评论 -
c++学习笔记(7)-复制省略
Copy elision是一种强大的优化技术,可以减少构造和复制的操作,提高程序效率,但还是存在一些局限和开发风险的:Copy elision的实现方式可能因编译器版本和编译器选项而变化,比如上述代码的输出结果在C++20编译器中则有些许不同,因此开发人员需要了解特定编译器版本和选项,以便制定最优的代码优化策略。原创 2023-12-26 15:28:18 · 424 阅读 · 0 评论 -
c++学习笔记(6)-类型转换
数值、字符、bool、枚举类型之间的转换;指针类型之间、引用类型之间的转换;限定符的添加和删除:比如const,volatile。用户定义类型转换指类类型与基本类型、或者类类型之间的转换。转换构造函数:定义在类中的一种特殊的构造函数,它可以将其它类型转换为该类的一个对象。类类型转换操作符:定义在类中的一种特殊的成员函数,它可以将一个对象转换为另一个基本类型。//重载int运算符,把Object转化为int类型public://转换构造函数//类类型转换操作符:定义int运算符。原创 2023-12-26 15:26:23 · 925 阅读 · 0 评论 -
c++学习笔记(5)-多态
public:std::cout<<"矩形"<<std::endl;public:std::cout<<"圆形"<<std::endl;printpublic :std :: cout << "矩形" << std :: endl;} };public :std :: cout << "圆形" << std :: endl;} };//矩形 print < Circle >();//圆形 return 0;();原创 2023-12-26 15:25:36 · 362 阅读 · 0 评论 -
c++学习笔记(4)-链接
总的来说,静态链接和动态链接是两种不同的链接方式,都可用于将程序的不同模块连接到一起,以便程序能够正常运行,适用于不同的场景,互有优劣。原创 2023-12-26 15:24:54 · 411 阅读 · 0 评论 -
c++学习笔记(3)-类型擦除
C++ 类型擦除是指通过一些技术手段去掉(或“擦除”)C++ 中的类型信息,使得一个数据结构或算法能够处理不同类型的对象。类型擦除可以使得泛型编程变得更加灵活和通用,可以将相同的算法应用于不同类型的数据上,而无需对算法进行修改。在C++中,有两种主要的类型擦除方法,分别是基于模板类的类型擦除和基于虚函数的类型擦除。原创 2023-12-26 15:23:51 · 529 阅读 · 0 评论 -
c++学习笔记(2)-宏的用途
C++ 中可以使用 #define 语句来定义宏。// 定义常量#define PI3.1415926return 0;在上述代码中,通过 #define PI 3.1415926 定义了一个常量 PI,然后在程序中可以直接使用这个常量,而无需重复输入3.1415926。在程序执行时,编译器会将 PI 替换成实际值,从而计算出圆的面积,并输出到控制台。宏函数是将代码块封装成宏的形式,使用时会将宏展开成代码块。原创 2023-12-26 15:22:50 · 412 阅读 · 0 评论 -
c++学习笔记(1)-符号重定义
如果在多个地方重复定义同一个宏,则会在预处理阶段导致符号重定义错误。在这个例子中,当编译器编译 main.c 时,会发现 MAX 宏在两个头文件中都被定义了,从而导致符号重定义错误。符号重定义错误通常是在编译期间被检测到的,而不是在运行时。然而,有些情况下可能会在运行时发生符号重定义错误。例如,在动态链接库或共享对象中,函数或变量可以在运行时加载和卸载。原创 2023-12-26 15:22:09 · 434 阅读 · 0 评论 -
c++学习笔记(13)-左值和右值
如果能够直接使用临时对象已经申请的资源,并在其析构函数中取消对资源的释放,这样既能节省资源,有能节省资源申请和释放的时间。需要注意的是:右值引用并不能阻止编译器在临时对象使用完之后将其释放掉的事实,所以转移构造函数和转移赋值操作符重载函数 中都将_data赋值为了NULL,而且析构函数中保证了_data!常量左值引用可以绑定到非常量左值、常量左值、非常量右值、常量右值等所有的值类型。右值引用:其实也是绑定到右值的引用,通过&&来获得右值引用。左值引用:其实就是绑定到左值的引用,通过&来获得左值引用。原创 2023-12-26 15:21:00 · 417 阅读 · 0 评论 -
Entt笔记-(ECS)实体组件系统
EnTT提供了一个用现代C++编写的header-only、微小的、易于使用的实体组件系统模块。实体-组件-系统(也称为ECS)是一种主要用于游戏开发的架构模式。翻译 2023-04-22 18:03:48 · 1996 阅读 · 0 评论 -
RenduCore笔记-项目结构模版(cmake&c++)
cmake项目框架通用cmake封装!原创 2022-10-04 17:51:15 · 435 阅读 · 0 评论 -
RenduCore笔记-c++实用库
c++实用库原创 2022-10-01 12:44:40 · 603 阅读 · 0 评论