摘要:
1、子类调用父类的同名函数(非虚函数) class Base { public: void func(); void func(int i); }; class Element : public Base { public: void func(int i); // 当子类有父类的同名函数 }; i 阅读全文
posted @ 2020-06-07 22:48
min_zhi
阅读(255)
评论(0)
推荐(0)
摘要:
如果表达式的类型是类类型且至少包含有一个虚函数,则typeid操作符返回表达式的动态类型,需要在运行时计算; 否则,typeid操作符返回表达式的静态类型,在编译时就可以计算。 1、返回值和参数 // 返回值类型 type_info // 标准库类型,相当于一个类 // 其中有成员函数 name() 阅读全文
posted @ 2020-06-07 22:06
min_zhi
阅读(308)
评论(0)
推荐(0)
摘要:
一、概念 1、运算符重载,本质上是编写以运算符作为函数名的函数 返回值类型 operate 运算符 (形参列表) { ... } 运算符的操作数成为运算符函数调用的实参,运算的结果就是运算符函数的返回值 2、运算符可以被重载为全局函数,也可以被重载为成员函数 class Element { publ 阅读全文
posted @ 2020-06-07 16:56
min_zhi
阅读(156)
评论(0)
推荐(0)
摘要:
一、默认构造函数 1、=default 和 =delete = default // 只能用于不带参数的构造函数,不能用于带参,或者普通函数 = delete // 禁止系统给我们生成默认的不带参数的构造函数 2、explicit 一般只带一个默认参数的构造函数前面会加explicit,避免一些数字 阅读全文
posted @ 2020-06-07 15:58
min_zhi
阅读(196)
评论(0)
推荐(0)
摘要:
一、概述1、独占式,同一时刻只能有一个unique_ptr 指针指向这个对象,当unique_ptr 被销毁的时刻,它所指向的对象也会被销毁。2、初始化 unique_ptr p1(new int(10)); unique_ptr p2 = make_unique(10); // C++14中才有m 阅读全文
posted @ 2020-06-07 13:06
min_zhi
阅读(414)
评论(0)
推荐(0)
摘要:
一、简介 1、是个类模板,指向一个由shared_ptr管理的对象,辅助shared_ptr 工作,weak_ptr不能控制对象的生命周期 2、将weak_ptr 绑定到shared_ptr 上,并不会改变shared_ptr 的引用计数, 当shared_ptr 需要释放对象时仍照常释放,不管是否 阅读全文
posted @ 2020-06-07 12:57
min_zhi
阅读(228)
评论(0)
推荐(0)
摘要:
一、语法: shared_ptr p(new int(100)); // 正确!显示构造,直接初始化 shared_ptr p = new int(100); // 错误!智能指针是explicit,不可用隐式类型转换,必须直接用初始化 二、简介: //常见的几种智能指针 shared_ptr, u 阅读全文
posted @ 2020-06-07 12:52
min_zhi
阅读(464)
评论(0)
推荐(0)
摘要:
class B { public: int m_iNum; virtual void foo(); }; class D : public B { public: char *m_szName[100]; }; void func(B *pb) { D *pd1 = static_cast(pb); 阅读全文
posted @ 2020-06-07 12:31
min_zhi
阅读(420)
评论(0)
推荐(0)
摘要:
1、越界检查a[2] 数组不会检查越界,vector会检查越界 2、容器中不能存放引用vector, vector<int*>,vector<int&>(这种情况不可以) 引用是个别名,不是对象,不是对象不能往vector中放 3、比较少见的几种创建方式vector a(5, -1); // 初始化 阅读全文
posted @ 2020-06-07 12:26
min_zhi
阅读(389)
评论(0)
推荐(0)
摘要:
一、string对象操作string str1、str.c_str() 返回const char* 2、两个字符串不能挨着相加 "abc" + "de" // 错误, // 因为两个字符串直接相加,不知道得到的是什么类型,会导致编译错误; "abc" + s + "de" //正确, // 其中s 阅读全文
posted @ 2020-06-07 11:54
min_zhi
阅读(159)
评论(0)
推荐(0)
摘要:
1、const char * p p指向的东西,不能通过p来修改,其指向的内容可以通过其他的指针来修改 char str[] = "hello"; const char* p = str; p[0] = 's'; // 错误,不能通过const char* 指针来修改其指向的值 str[0] = ' 阅读全文
posted @ 2020-06-07 11:51
min_zhi
阅读(2960)
评论(0)
推荐(0)
摘要:
小知识点:1、strcpy 和 strcpy_s(1)strcpy(char* point, char const* charValue)将 charValue 的值往 point 指向的内存区域拷贝,如果内存不够,会将溢出的部分继续往后面拷,会导致其他的内存区域被覆盖,可能引起程序不定时崩溃(2) 阅读全文
posted @ 2020-06-07 11:41
min_zhi
阅读(123)
评论(0)
推荐(0)
摘要:
定义: 在函数定义(注意不是函数声明)前加上 inline 关键字(1)编译器在编译阶段对 inline 函数进行处理,系统尝试将该函数的调用动作替换成函数本体,来提升性能。(2)inline 只是我们开发者对编译器的一个建议,编译器可以尝试去做,也可以不去做,取决于编译器的诊断功能,我们无法控制。 阅读全文
posted @ 2020-06-07 00:03
min_zhi
阅读(439)
评论(0)
推荐(0)