C++
文章平均质量分 55
zhuriyuxiao
这个作者很懒,什么都没留下…
展开
-
C++编译思考---静态联编(static Binding)和动态联编(dynamic Binding)
静态联编(static Binding)和动态联编(dynamic Binding)C++中这两个词语感觉有点抽象,另外翻译之后也感觉有点别扭,所以更加给人感觉不好理解。静态联编和动态联编实际上就是对于调用函数的处理方式, 决定对象在编译阶段决定调用那个函数(静态联编),还是运行时决定调用那个函数方式(动态联编)。言外之意,编译阶段决定调用那个函数,当然可以由编译器来检查调用是原创 2012-11-10 22:11:32 · 126 阅读 · 0 评论 -
单实例化两种实现方式
单实例,顾名思义就是产生一个类的对象(实例)。接下来我们想知道什么时候单实例情况?对于这个问题,我们可以这么想,单实例有什么好处?想能明白这个问题,可以借用多线程和单线程来理解。如何实现单实例化?C++单实例化两种实现方式: 需要保证,有且仅有调用一个接口,除此没有别的方式来生成类的实例并且只能产生一个实例, 下列情况可能造成产生多实例,请注意相同点: (1)屏蔽默认生成原创 2012-11-12 16:12:15 · 467 阅读 · 0 评论 -
C++成员变量初始化
C++类中成员变量包括主要四种:普通成员变量,常量成员变量,静态成员变量,静态常量成员变量上述成员变量该如何初始化,注意不是赋值。由于普通成员变量和常量成员变量,每一个类实例化,都一份内存拷贝。C++规定成员变量在声明(注意声明与定义区别)时,不允许初始化,因此这些变量只能放在构造函数初始化列表中。静态成员变量所有类实例化,只有一份内存拷贝,不能放在构造函数中初始化, 因为共享原创 2012-11-09 16:59:30 · 1218 阅读 · 0 评论 -
dynamic_cast 类型转换全面深入讨论
dynamic_cast 类型转换全面深入讨论理解dynamic_cast,必须明白C++语言中继承和多态概念以及实现,不然无法真正明白其要求。1.dynamic_cast在继承情况要求dynamic_cast 只能在对象的引用和指向对象指针情况下, 目的是确保类型转换是一个有效完整转换类对象,因此当到基类转换(向上转换),dynamic_cast总是成功的。限制条件说明:原创 2013-03-06 15:26:47 · 1013 阅读 · 0 评论 -
重载,覆盖,隐藏
重载产生于一个类,实现不同定义,统一接口。覆盖产生与多个类,实现多态概念。隐藏多产生于继承或者派生,属于命名空间作用域范畴。当一个类调用存在多重继承时,调用函数和变量时:首先访问自己的作用域,在自己作用域不存在,访问父类,还不存在继续向上查找,直到全局命名空间(注意命名空间指名称,不包括参数,返回值)。如果查找到,就访问自己作用域。由此可见存在一个隐藏概念,自己作用域,隐藏父类作用原创 2012-11-12 17:28:20 · 195 阅读 · 0 评论 -
友元函数浅谈
友元函数1.友元函数必须在一个类中声明,拍拍胸脯,告诉它是我的朋友,既然是朋友,那么可以使用和访问我的资源(包括私有,公有,保护)。2.友元函数访问我的资源,通过什么方式呢? 只能通过对象变量,不能通过类的变量。 实现方式,以参数方式传递对象,进入友元函数。3.既然是友元函数,那么与成员函数有区别,如何使用呢? 不能通过成员符号,例如(->, . , ::)使用该函数。友元函数原创 2013-03-07 16:46:51 · 285 阅读 · 0 评论