上一页 1 2 3 4 5 6 7 8 9 ··· 14 下一页
摘要: 临时对象 C++中真正的临时对象是不可见的,在源代码中不会出现,且不在堆上分配内存(在栈中),没有名字的对象; //i++ ++i //i++ 会产生一个临时对象,用来记录i的值; int i = 1; int &&r = i++; //i和r没关系 产生临时对象的情况 临时对象可能发生于如下的三种 阅读全文
posted @ 2020-07-21 08:33 NaughtyCoder 阅读(273) 评论(0) 推荐(0)
摘要: 派生类对象模型 子类对象包含多个组成部分(也就是多个子对象); 含有派生类自己定义的成员变量、成员函数的子对象; 该派生类所继承的基类的子对象,这个子对象包含的是基类中定义的成员变量、成员函数(派生类对象含有基类对应的组成部分); 两部分数据在内存中的存储可能不连续; 基类指针可以new派生类对象, 阅读全文
posted @ 2020-07-21 08:00 NaughtyCoder 阅读(670) 评论(0) 推荐(0)
摘要: 左值和右值 左值:能用在赋值语句等号左侧的东西;能够代表一个地址; 右值:不能作为左值的值就是右值,右值不能出现在赋值语句等号的左侧; 结论: C++的表达式,要么是左值,要么是右值,不能能两者都不是; 左值有的时候能够被当做右值使用; int i = 10; i = i + 1; //i是个左值, 阅读全文
posted @ 2020-07-20 23:49 NaughtyCoder 阅读(377) 评论(0) 推荐(1)
摘要: RTTI是什么 Run Time Type Identification:运行时类型识别;通过运行时类型识别,程序能够使用基类的指针或引用来检查这些指针或引用所指向的对象的实际派生类型。 Human *phuman = new Men; Human &q = *phuman; 主要是通过两个运算符来 阅读全文
posted @ 2020-07-20 23:44 NaughtyCoder 阅读(252) 评论(0) 推荐(0)
摘要: 循环引用问题 “循环引用”简单来说就是:两个对象互相使用一个shared_ptr成员变量指向对方的会造成循环引用。导致引用计数失效。 即A内部有指向B,B内部有指向A,这样对于A,B必定是在A析构后B才析构,对于B,A必定是在B析构后才析构A,这就是循环引用问题,违反常规,导致内存泄露。 #incl 阅读全文
posted @ 2020-07-20 22:47 NaughtyCoder 阅读(589) 评论(0) 推荐(0)
摘要: weak_ptr weak_ptr概述: 用来辅助shared_ptr进行工作 week 弱 弱共享 弱引用 共享其他shared_ptr所指向的对象 强指针指的是 shared_ptr 弱指针指的是 weak_ptr weak_ptr 也是类模板,也是智能指针,这个智能指针用来指向一个shared 阅读全文
posted @ 2020-07-20 22:36 NaughtyCoder 阅读(154) 评论(0) 推荐(0)
摘要: 友元函数 友元函数:通过将该函数声明为某个类的友元函数,它就能访问这个类的所有成员,包括:protected,private; 友元类 把其他类定义成当前类的友元类;那么其他类的成员函数可以访问当前类的成员函数和变量(private、protected); 注意:每个类负责自己的友元类; 友元关系不 阅读全文
posted @ 2020-07-20 10:48 NaughtyCoder 阅读(123) 评论(0) 推荐(0)
摘要: 基类指针/派生类指针 基类指针可以new派生类对象,但是子类对象不能new基类指针; 基类指针new了子类对象,但是还是无法调用子类对象,需要借助虚函数; #include <iostream> using namespace std; class Human { public: Human(); 阅读全文
posted @ 2020-07-17 11:59 NaughtyCoder 阅读(153) 评论(0) 推荐(1)
摘要: 派生类概念 类之间有层次关系; 父类(基类、超类);子类(派生类); 父类中定义一些公用的成员变量和成员函数;通过继承父类来构建子类; class 子类名:继承方式:父类 派生类对象定义时调用构造函数的顺序 当定义子类对象时候,父类和子类的构造函数都会被调用,而且,父类的构造函数的函数体先执行,子类 阅读全文
posted @ 2020-07-17 09:59 NaughtyCoder 阅读(162) 评论(0) 推荐(1)
摘要: 重载运算符 本质上是一个函数,赋值运算符如果缺省,系统会自动生成一个;比较运算符不会; 格式: 返回类型 operator 运算符(参数列表) 拷贝赋值运算符 Time mytime; //调用无参构造函数 Time mytime2 = mytime; //定义初始化 调用了拷贝构造函数 mytim 阅读全文
posted @ 2020-07-16 21:21 NaughtyCoder 阅读(306) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 9 ··· 14 下一页