随笔分类 -  C/C++

摘要:https://blog.csdn.net/rongwenbin/article/details/19344695 阅读全文
posted @ 2021-09-01 09:25 唯一诺 阅读(109) 评论(0) 推荐(0)
摘要:转载:https://blog.csdn.net/bear_n/article/details/72798301 对于C++默认构造函数,我曾经有两点误解: 类如果没有定义任何的构造函数,那么编译器(一定会!)将为类定义一个合成的默认构造函数; 合成默认构造函数会初始化类中所有的数据成员; 在看《E 阅读全文
posted @ 2021-04-22 08:40 唯一诺 阅读(879) 评论(0) 推荐(0)
摘要:1. 静态分配:在类中将new 、delete运算符重载为private属性; 这样做的原因:private属性的成员无法被外部调用,因为无法通过new动态创建对象; 2. 动态分配:在类中将构造函数和析构函数设置为protected属性; 这样做的原因:将析构和构造设置为protected属性后, 阅读全文
posted @ 2021-04-21 19:36 唯一诺 阅读(342) 评论(0) 推荐(1)
摘要:转载:https://www.cnblogs.com/feng-sc/p/5710724.html#title11 std::bind和std::function也是从boost中移植进来的C++新标准,这两个语法使得封装可执行对象变得简单而易用。此外,std::bind和std::function 阅读全文
posted @ 2021-04-19 20:23 唯一诺 阅读(209) 评论(0) 推荐(0)
摘要:nullptr关键字及用法 为什么需要nullptr? NULL有什么毛病? 我们通过下面一个小小的例子来发现NULL的一点问题: //示例代码1.0 http://www.cnblogs.com/feng-sc/p/5710724.html class Test { public: void Te 阅读全文
posted @ 2021-04-19 19:54 唯一诺 阅读(188) 评论(0) 推荐(1)
摘要:C++11新标准学习:decltype关键字 1. decltype的意义 有时我们希望从表达式的类型推断出要定义的变量类型,但是不想用该表达式的值初始化变量(初始化可以用auto)。为了满足这一需求,C++11新标准引入了decltype类型说明符,它的作用是选择并返回操作数的数据类型,在此过程中 阅读全文
posted @ 2021-04-19 19:48 唯一诺 阅读(147) 评论(0) 推荐(0)
摘要:inline 成员函数在类体中定义的成员函数的规模一般都很小,而系统调用函数的过程所花费的时间开销相对是比较大的。 调用一个函数的时间开销远远大于小规模函数体中全部语句的执行时间。 为了减少时间开销,如果在类体中定义的成员函数中不包括循环等控制结构,C++系统会自动将它们作为内置(inline)函数 阅读全文
posted @ 2021-04-19 19:34 唯一诺 阅读(309) 评论(0) 推荐(0)
摘要:1. 虚函数中存在默认值时,需要注意其函数调用中默认值: class cbase { public: virtual void func(int a = 10) { cout << "this is cbase func:" << a << endl; } }; class csub : publi 阅读全文
posted @ 2021-04-15 19:37 唯一诺 阅读(334) 评论(1) 推荐(0)
摘要:https://www.cnblogs.com/heyonggang/p/3255155.html 超级详细 阅读全文
posted @ 2021-04-13 08:38 唯一诺 阅读(61) 评论(0) 推荐(0)
摘要:C++右值引用 作用:对右值进行修改; 为此,C++11 标准新引入了另一种引用方式,称为右值引用,用 "&&" 表示。 话说,C++标准委员会在选定右值引用符号时,既希望能选用现有 C++ 内部已有的符号,还不能与 C++ 98 /03 标准产生冲突,最终选定了 2 个 '&' 表示右值引用。 需 阅读全文
posted @ 2021-04-12 20:28 唯一诺 阅读(753) 评论(0) 推荐(0)
摘要:C++11中,当类中含有不能默认初始化的成员变量时,可以禁止默认构造函数的生成, myClass() = delete;//表示删除默认构造函数 myClass() = default;//表示默认存在构造函数 当类中含有不能默认拷贝成员变量时,可以禁止默认构造函数的生成, myClass(cons 阅读全文
posted @ 2021-04-08 21:36 唯一诺 阅读(1801) 评论(0) 推荐(1)
摘要:#include <memory> int main() { std::unique_ptr<int> f1 = std::unique_ptr<int>(new int); std::unique_ptr<int> f2 = std::move(f1); } 1. unique_ptr { std 阅读全文
posted @ 2021-04-07 21:39 唯一诺 阅读(216) 评论(0) 推荐(0)
摘要:1. 从语法上讲,构造函数和析构函数都能调用虚函数,没有问题; 2. 从实际效果上,无法实现虚函数的作用, 例如,基类的构造函数中即使调用虚函数,也是调用的基类自己实现的虚函数; 基类的析构函数中即使调用虚函数,也是调用的基类自己实现的虚函数; 《Effective c++》条款09:不要在构造函数 阅读全文
posted @ 2021-04-07 08:49 唯一诺 阅读(1173) 评论(0) 推荐(0)
摘要:1. 创建对象时,需要确定对象的类型,而虚函数是在运行时动态确定其类型的。在构造一个对象时,由于对象还未创建成功,编译器无法知道对象的实际类型; 2. 虚函数的调用需要通过vptr虚函数表指针,而该指针是存放在对象的内存空间中的,若构造函数声明为虚函数,那么由于对象尚未创建,还没有内存空间,也就没有 阅读全文
posted @ 2021-04-07 08:28 唯一诺 阅读(708) 评论(0) 推荐(0)
摘要:https://blog.csdn.net/weixin_41066529/article/details/89488774 一. 构造函数 总结如下: 1. 构造函数中抛出异常,会导致析构函数不能被调用,但对象本身已申请到的内存资源会被系统释放(已申请到资源的内部成员变量会被系统依次逆序调用其析构 阅读全文
posted @ 2021-04-06 20:29 唯一诺 阅读(774) 评论(0) 推荐(0)
摘要:void checkTarget() { int target = 14; int buf[] = { 8, 2, 9, 10, 5, 4, 6 }; std::map<int, int> tmpMap; for (int i = 0; i < sizeof(buf); i ++) { std::m 阅读全文
posted @ 2021-04-06 08:34 唯一诺 阅读(112) 评论(0) 推荐(0)
摘要:class CSub2 { public: CSub2() { cout << "默认构造函数:" << this <<endl; } CSub2(int x) : m_x(x) { cout << "构造函数:" << m_x << ":" << this << endl; } CSub2& op 阅读全文
posted @ 2021-03-31 21:03 唯一诺 阅读(412) 评论(0) 推荐(0)
摘要:https://blog.csdn.net/wudishine/article/details/12307611 阅读全文
posted @ 2021-03-31 19:19 唯一诺 阅读(192) 评论(0) 推荐(0)
摘要:11 阅读全文
posted @ 2021-03-30 20:13 唯一诺 阅读(51) 评论(0) 推荐(0)
摘要:template<typename T> void funcTmp(T a, T b) { cout << "this is yiban" << endl; } template<> void funcTmp(const char* a, const char* b) { cout << "this 阅读全文
posted @ 2021-03-30 19:27 唯一诺 阅读(56) 评论(0) 推荐(0)