随笔分类 -  C++之语言与时俱进

C++语言语法与时俱进 C++98 C++03 C++11 C++14 C++20
摘要:做了4个试验,test5没做,但是给了结论。 直接贴实践过的代码 #include <iostream> #include <string> template<typename T> void swapval(T& val1, T& val2){ T vector = val1; val1 = va 阅读全文
posted @ 2021-02-07 16:19 一匹夫 阅读(83) 评论(0) 推荐(0)
摘要:1.为什么可以析构? 我对单例模式的理解: 在单例类对象的生命周期内,只有一个单例类的对象,所以我可以让单例类对象生,也可以让它死,只要保证单例类对象生的时候,只有一个对象就行。 让单例类对象死,就得需要接口,即在外部调用delete。 2.单例的析构-实验, 以及注意事项 注意事项: 不要重复调用 阅读全文
posted @ 2020-10-15 15:26 一匹夫 阅读(1796) 评论(0) 推荐(1)
摘要:. class Myclass { public: virtual int FuncX(); virtual int FuncY(); }; int main() { Myclass obj; // 编译报错 cout << "hello" << endl; return 0; } class My 阅读全文
posted @ 2020-10-03 22:33 一匹夫 阅读(333) 评论(0) 推荐(0)
摘要:const int f[10] = { 1,2,3,4,5,6,7,8,9,10 }; int main() { // test1 const int i = 3; int& j = const_cast<int&>(i); // 使用const_cast关键字进行强制类型转换 j = 5; // 阅读全文
posted @ 2020-10-03 21:22 一匹夫 阅读(522) 评论(0) 推荐(0)
摘要:1. 多态初体验 #include <iostream> #include <string> using namespace std; class Parent { public: virtual void print() { cout << "I'm Parent." << endl; } }; 阅读全文
posted @ 2020-10-03 20:43 一匹夫 阅读(264) 评论(0) 推荐(0)
摘要:1. 重载指针访问符 初体验 #include <iostream> using namespace std; class test { public: test(int input) :num(input), j(input) {} ~test() {} int operator * () con 阅读全文
posted @ 2020-10-03 17:42 一匹夫 阅读(161) 评论(0) 推荐(0)
摘要:字面常量不可以有引用,因为这也不需要使用符号来引用了,但是字面常量却可以初始化const引用,这将生成一个只读变量; 对变量的const修饰的引用是只读属性的; 也就是说,const修饰的引用,不管是变量初始化还是字面常量初始化,总是对应一个只读变量。 # 函数能够重载和返回值无关,所以两个函数若是 阅读全文
posted @ 2020-10-02 23:05 一匹夫 阅读(342) 评论(0) 推荐(0)
摘要:单例模式的构造函数是私有的,目的是让用户无法直接new出实例,而只有通过其他的接口来获取实例,单例模式在这里作文章,使得多次获取到的实例,都是同一个实例。 单例模式,分为饿汉式单例 和 懒汉式单例。 先把本类对象所需内存在main函数执行前就new出来,这是饿汉式单例。 个人思考: 为什么饿汉式不独 阅读全文
posted @ 2020-09-14 09:44 一匹夫 阅读(1175) 评论(0) 推荐(0)
摘要:小结如下: 前置声明注意事项: 类或结构体的前置声明, 在其内部只能定义对象指针,因为此时没有办法构造一个具体的对象。 . 阅读全文
posted @ 2020-09-10 17:03 一匹夫 阅读(255) 评论(0) 推荐(0)
摘要:Test1 /** Ques: 类对象的赋值操作是否有可能调用到构造函数 ? **/ class mystring { char str[100]; public: mystring() //mystring(): str{0x37} 使用初始化列表,实际只初始化了数组中的第一个元素 { //cou 阅读全文
posted @ 2020-08-16 22:42 一匹夫 阅读(211) 评论(0) 推荐(0)
摘要:/******** 操作符重载 *** *** 下面三种方式,都支持连续加操作,但是稍有不同,你知道哪里不同吗 *** ******/ /** Test1 *****/ #if 0 class Calculate { int a; public: Calculate(void) : a(0) { c 阅读全文
posted @ 2020-08-13 14:56 一匹夫 阅读(160) 评论(0) 推荐(0)
摘要:1. 调试功能一般会使用到宏+可变参数的方式 1.1 ##__VA_ARGS__ 之详细解析 例如: case A. #define my_print1(...) printf(__VA_ARGS__) my_print1("i=%d,j=%d\n",i,j) 正确打印 case B. #defin 阅读全文
posted @ 2020-02-05 18:06 一匹夫 阅读(2514) 评论(0) 推荐(0)
摘要:(1) 类模板 体验 template <typename T1, typename T2>class Test //原始的类模板后 加上class Test<T1, T2>会报错{public: void add(T1 a, T1 b) { cout << "void add(T1 a, T1 b 阅读全文
posted @ 2019-03-04 22:20 一匹夫 阅读(836) 评论(0) 推荐(0)
摘要:–赋值兼容原则(派生类对象是基类对象,反之不成立)–基类指针强制转换成派生类指针–派生类中重定义基类成员(同名覆盖) 假设, 一个基类 "普通人", 一个派生类 "超人". 1) 赋值兼容原则(派生类对象是基类对象,反之不成立) 超人是人吧, 但不是每个人都是超人.现在我要找一个普通人来干活. Ma 阅读全文
posted @ 2019-02-14 16:35 一匹夫 阅读(585) 评论(0) 推荐(0)
摘要:C++标准库的内容分为10类: C1.语言支持 C2.输入/输出 C3.诊断 C4.一般工具 C5.字符串 C6.容器 C7.迭代器支持 C8.算法 C9.数值操作 C10.本地化; 下面分类详解: C1 标准库中与语言支持功能相关的头文件 头文件 描述 定义宏NULL和offsetof,以及其他标 阅读全文
posted @ 2019-02-13 09:25 一匹夫 阅读(5229) 评论(0) 推荐(0)
摘要:C++中允许为函数提供默认参数,又名缺省参数。 使用默认参数时的注意事项: ① 有函数声明(原型)时,默认参数可以放在函数声明或者定义中,但只能放在二者之一 double sqrt(double f = 1.0); //函数声明 double sqrt(double f) //函数定义 { // . 阅读全文
posted @ 2019-02-09 22:04 一匹夫 阅读(30213) 评论(0) 推荐(5)
摘要:https://www.cnblogs.com/harlanc/tag/effective%20c%2B%2B/default.html?page=3 阅读全文
posted @ 2019-01-26 16:33 一匹夫 阅读(156) 评论(0) 推荐(0)