随笔分类 - 类
摘要:ref:http://bbs.csdn.net/topics/360249561一个继承了两个虚基类又增加了自己的一个虚函数pif的类,sizeof(指向pif的指针)竟然是8(X86)。我是从这里http://www.codeproject.com/KB/cpp/FastDelegate.aspx...
        阅读全文
            
摘要:0.1.守则01:把C++看做一个语言的集合,而不是单一的语言 早期的C++只是叫"C with classes",但发展到今天已经成为一个多重泛型编程语言(Multi-paradigm programming language),它具有4种“子语言”:C 面向对象的C++ 模板C++ STL 0.
        阅读全文
            
摘要:1、派生类的对象和基类是属于的关系,即 对象 is a X类,对象属于X类。2、多态性的概念:了解多态性之前,要熟悉引用和对象的区别:对象存储在堆中,引用(符)存储在栈中,引用符的值是对象在堆中的地址,因此通过引用符可以轻松地找到对象。一般情况下,引用符和对象属于同一类型,基类的引用指向基类的对象,派生类的引用指向派生类的对象,但是我们知道,派生类对象也属于基类,所以基类引用符可以指向派生类对象。 一个基类的引用符,可以指向多种派生类对象,具有多种不同的形态,这种现象叫多态性。这种方式经常用作设计模式中的工厂模式。3、接口接口实际上就是一个类,只是这个类只声明成员,而不具体实现。故不能创建接口
        阅读全文
            
摘要:首先说说构造函数,大家都知道构造函数里就可以调用成员变量,而继承中子类是把基类的成员变成自己的成员,那么也就是说子类在构造函数里就可以调用基类的成员了,这就说明创建子类的时候必须先调用基类的构造函数,只有这样子类才能在构造函数里使用基类的成员,所以是创建子类时先调用基类的构造函数然后再调用自己的构造函数。通俗点说,你要用某些物品,但这些物品你没办法自己生产,自然就要等别人生产出来,你才能拿来用。接着就是析构函数了,上面说到子类是将基类的成员变成自己的成员,那么基类就会只存在子类中直到子类调用析构函数后。做个假设:假如在基类的析构函数调用比子类的先,这样会发生什么事呢?类成员终止了,而类本身却还
        阅读全文
            
摘要:多态是面向对象的基本特征之一。而虚函数是实现多态的方法。那么virtual function到底如何实现多态的呢?1 基类的内存分布情况请看下面的sampleclass A{void g(){.....}};则sizeof(A)=1;如果改为如下:class A{public: virtual void f() { ...... } void g(){.....}}则sizeof(A)=4! 这...
        阅读全文
            
摘要:vector的元素可以是任意类型T,但必须具备赋值和拷贝能力(具有public 拷贝构造函数和重载的赋值操作符). 其实很容易理解,自定义一些模板时,同样会需要其实例化类型具备默写操作(如大于小于操作等。) 下面一个自定义模板类就需要dump函数了:template<class T>inline static void Dumpvector(const std::vector<T *> &vvector){ std::vector<T *> ::iterator pvectorIt = vvector.begin(); for(; pvectorIt
        阅读全文
            
摘要:公有继承体现 "是一个" 的含义,但是Student "是一个" Person的事实并不说明Student的数组 "是一个" Person数组。
        阅读全文
            
摘要:友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元类。问题的提出 我们已知道类具有封装和信息隐藏的特性。只有类的成员函数才能访问类的私有成员,程序中的其他函数是无法访问私有成员的。非成员函数可以访问类中的公有成员,但是如果将数据成员都定义为公有的,这又破坏了隐藏的特性。另外,应该看到在某些情况下,特别是在对某些成员函数多次调用时,由于参数传递,类型检查和安全性检查等都需要时间开销,而影响程序的运行效率。 为了解决上述问题,提出一种使用友元的方案。友元是一种定义在类外部的普通函数或类,但它需要在类体内进行说明,为了与该类的成员函数加以区别,在说明时前面加以关键字fr..
        阅读全文
            
 
                     
                    
                 
                    
                
 
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号