C++
Gexyz
这个作者很懒,什么都没留下…
展开
-
C++派生类与基类的赋值
class A{A& operator =(const A&){}};class B:A{B& operator=(const &B){}};void main(){A a;B b;a=b;//正确b=a;//错误}可以把派生类赋值给基类。我们知道赋值,是调用了类的赋值运算符。所以当派生类给基类赋值时,调用了基类的复制运算符函数,该函数的参数是基原创 2016-04-11 15:46:42 · 1548 阅读 · 0 评论 -
关于C++类的静态数据为什么一定要初始化
转载:http://my.oschina.net/u/1537391/blog/219432我们知道C++类的静态成员变量是需要初始化的,但为什么要初始化呢。其实这句话“静态成员变量是需要初始化的”是有一定问题的,应该说“静态成员变量需要定义”才是准确的,而不是初始化。两者的区别在于:初始化是赋一个初始值,而定义是分配内存。静态成员变量在类中仅仅是声明,没有定义,所转载 2016-04-15 16:17:41 · 569 阅读 · 0 评论 -
继承 内存分布
单继承1.普通继承+父类无virtual函数若子类没有新定义virtual函数 此时子类的布局是 : 低地址 -> 高地址 父类的元素(没有vfptr),子类的元素(没有vfptr).若子类有新定义virtual函数 此时子类的布局是 : 低地址 -> 高地址 vfptr,指向vtable, 父类的元素(没有vfptr), 子类的元素 2. 普通继承转载 2016-05-04 21:46:11 · 274 阅读 · 0 评论