创建String对象的方式:1.String s1="ab"; //常量,编译时就生成,储存在常量池中。如果常量池中本来就有"ab",则只传递引用,不创建;如果常量池中没有"ab",则创建并传递引用。2.String s2=new String("ab"); //变量,运行时创建,储存在堆内...
分类:
其他好文 时间:
2014-12-01 15:50:31
阅读次数:
146
类对象的分配与数组类似 : 对象的引用,局部变量在栈内存中,new出来的东西(包括成员变量)在堆内存中。一、成员变量:1 成员变量定义在类中,在整个类中都可以被访问。2 成员变量分为类成员变量和实例成员变量,实例变量存在于对象所在的堆内存中。3 成员变量有默认初始化值。4 成员变量的权限修饰符可以根...
分类:
其他好文 时间:
2014-11-26 18:51:16
阅读次数:
156
苹果的内存有限,为了更好的用户体验,需要手动管理内存。从网上copy,也一 基本原理Objective-C的内存管理机制与Java那种全自动的垃圾回收机制是不同的,它本质上还是C语言中的手动管理方式,只不过稍加了一些自动方法.1,OC采用了引用计数(retain count)对对象内存进行管理,例如...
分类:
其他好文 时间:
2014-11-26 14:10:55
阅读次数:
165
重复继承下面我们再来看看,发生重复继承的情况。所谓重复继承,也就是某个基类被间接地重复继承了多次。下图是一个继承图,我们重载了父类的f()函数。其类继承的源代码如下所示。其中,每个类都有两个变量,一个是整形(4字节),一个是字符(1字节),而且还有自己的虚函数,自己overwrite父类的虚函数。如...
分类:
其他好文 时间:
2014-11-12 22:39:16
阅读次数:
335
下面来看看虚基类对对象内存布局的影响。虚基类的主要作用就是在所有的派生类中,保留且仅保留一份虚基类的suboject。#include using namespace std;class Base{public: int m_base; Base():m_base(20){} vi...
分类:
其他好文 时间:
2014-11-12 22:35:12
阅读次数:
301
前言07年12月,我写了一篇《C++虚函数表解析》的文章,引起了大家的兴趣。有很多朋友对我的文章留了言,有鼓励我的,有批评我的,还有很多问问题的。我在这里一并对大家的留言表示感谢。这也是我为什么再写一篇续言的原因。因为,在上一篇文章中,我用了的示例都是非常简单的,主要是为了说明一些机理上的问题,也是...
分类:
其他好文 时间:
2014-11-12 22:33:36
阅读次数:
220
内容概要:满足下面2个条件时,1. 父类有虚函数,子类也有虚函数,且子类的虚函数重写或覆盖了父类的虚函数2. 非虚继承类对象之内存布局在前面的例子中,恢复原来的两个虚函数vfBase_1()和vfBase_2(),同时在Derived类中重写基类的虚函数vfBase_1(),Base类和Derive...
分类:
其他好文 时间:
2014-11-12 08:11:59
阅读次数:
155
内容概要:满足下面2个条件时,1. 父类有虚函数,子类无虚函数(即无虚函数重写或无虚函数覆盖)2. 非虚继承类对象之内存布局前述相关内容参考:1.http://blog.csdn.net/pathuang68/archive/2009/04/20/4096088.aspx2.http://blog....
分类:
其他好文 时间:
2014-11-12 00:28:31
阅读次数:
256
内容概要:满足下面2个条件时,1. 父类无虚函数,子类有虚函数2. 非虚继承类对象之内存布局如果将Base中的两个虚函数删除,情况有会怎么样呢?将Base中的两个虚函数删除,其他保持不变。Base类和Derived类两者之间的关系如下:代码如下:#include using namespace st...
分类:
其他好文 时间:
2014-11-12 00:27:27
阅读次数:
189
内容概要:满足下面2个条件时,1. 父类有虚函数,子类也有虚函数,但子类并没有重写或覆盖父类的虚函数2. 非虚继承类对象之内存布局如果在Derived类中增加一个下面的虚函数,会怎么样呢?Base类和Derived类之间的关系如下:新加入的虚函数定义如下:#include using namespa...
分类:
其他好文 时间:
2014-11-12 00:22:26
阅读次数:
153