摘要: 在c++11之前就已经有了断言,但是不是静态断言。 断言 断言是一种编程中常用的手段。在通常情况下,断言就是将一个返回值总是需要为真的判断表达式放在语句中,用于排除在设计的逻辑上不应该产生的情况。 一个函数总需要输入在一定的范围内的参数,那么程序员就可以对该参数使用断言,以迫使在该参数发生异常的时候 阅读全文
posted @ 2026-02-04 16:29 ProMonkey; 阅读(4) 评论(0) 推荐(0)
摘要: 嵌套时(比如printVector<vector<int>>)中的">>"的优化 在使用vector<int>时,本意是向模板中传入一个vector<int>类型的参数,但是编译器错误的将">>"识别为右移运算符,而不是模板参数表的结束。之前的解决方案是在">>"中间添加空格"> >"。 C++11 阅读全文
posted @ 2026-01-26 09:41 ProMonkey; 阅读(33) 评论(0) 推荐(0)
摘要: override 学过Java的小伙伴们应该不陌生,这个关键字就类似Java中的注解@override 确保在子类中声明的重写函数与基类的虚函数有相同的签名,同时也明确表明将会重写基类的虚函数,这样就可以保证重写的虚函数的正确性,也提高了代码的可读性; override和final一样这个关键字要写 阅读全文
posted @ 2025-12-23 22:09 ProMonkey; 阅读(30) 评论(0) 推荐(0)
摘要: 目录Java中final有三种主要用法:C++中final只有两种:C++中const:修饰变量(基本类型变量、成员变量):const与引用:const与指针:"const在*前,数据不能改,const在*后,指针不能改"const在函数中的应用:const修饰对象: Java中final有三种主要 阅读全文
posted @ 2025-12-15 17:58 ProMonkey; 阅读(56) 评论(0) 推荐(0)
摘要: C++中增加了final关键字来限制某个类不能被继承,或者某个虚函数不能被重写,这和Java的final关键字的功能类似;但是java中的final可以修饰变量,C++中的是不能的(后续会有对比)。 final只能修饰虚函数,并且要把final关键字放到类或者函数的后面。 #include<iost 阅读全文
posted @ 2025-12-15 17:56 ProMonkey; 阅读(10) 评论(0) 推荐(0)
摘要: C++11中在初始化时可以使用 = ,也可以使用 {} ,也可以使用 ={} ; 需要注意的是:类中的静态成员变量只有静态常量,并且类型是整型或者枚举类型,才能在类内初始化,其他都得在类外初始化。 #include <iostream> using namespace std; class Base 阅读全文
posted @ 2025-12-12 16:55 ProMonkey; 阅读(71) 评论(0) 推荐(0)
摘要: C++11中加入long long 的整型,C++11 标准要求 long long 整型可以在不同平台上有不同的长度,但至少8字节(64位)。long long 整型有两种∶long long 和 unsigned long long //long long 对应类型的数值可以使用LL或者ll后缀 阅读全文
posted @ 2025-12-12 15:51 ProMonkey; 阅读(37) 评论(0) 推荐(0)
摘要: C++ 中存在转义字符,例如"\n"或"\t"。当我们尝试打印转义字符时,它们不会显示在输出中。为了在输出屏幕上显示转义字符,我们使用了"R(带转义字符的字符串)"作为原始字符串字面量。在字符串前面使用 R 后,转义字符将显示在输出中。 定义方式: R "xxx(原始字符串)xxx" 其中()两边的 阅读全文
posted @ 2025-12-11 09:44 ProMonkey; 阅读(49) 评论(0) 推荐(0)