摘要: 在 C++ 中class 和 struct 只有两点主要区别: 默认继承权限。默认情况下,class的继承是以private来继承而struct则是按照public进行继承。成员的默认访问权限。class的成员默认是private权限,struct默认是public权限。 而其它的特性,struct和class基本上,甚至严格来说是一样的: 01//一个不常见的示例,将 struct 直接改为class也能编译通过。02//编译环境为 GCC 4.4.103#include <iostream>04#include <string>05using namespace s 阅读全文
posted @ 2011-12-30 10:57 super119 阅读(342) 评论(0) 推荐(0)
摘要: 纯虚函数是一种特殊的虚函数,它的一般格式如下: class <类名> { virtual <类型><函数名>(<参数表>)=0; … }; 在许多情况下,在基类中不能对虚函数给出有意义有实现,而把它说明为纯虚函数,它的实现留给该基类的派生类去做。这就是纯虚函数的作用。下面给出一个纯虚函数的例子。 #include class point { public: point(int i=0, int j=0) { x0=i; y0=j; } virtual void set() = 0; virtual void draw() = 0; protect 阅读全文
posted @ 2011-12-30 10:35 super119 阅读(222) 评论(0) 推荐(0)
摘要: Q:什么是C风格转换?什么是static_cast, dynamic_cast 以及 reinterpret_cast?区别是什么?为什么要注意?A:转换的含义是通过改变一个变量的类型为别的类型从而改变该变量的表示方式。为了类型转换一个简单对象为另一个对象你会使用传统的类型转换操作符。比如,为了转换一个类型为doubole的浮点数的指针到整型:代码:int i;double d;i = (int) d;或者:i = int (d);对 于具有标准定义转换的简单类型而言工作的很好。然而,这样的转换符也能不分皂白的应用于类(class)和类的指针。ANSI-C++标准定义了四个新的 转换符: 阅读全文
posted @ 2011-12-30 10:21 super119 阅读(336) 评论(0) 推荐(0)
摘要: 转载自:http://www.cnblogs.com/daoluanxiaozi/archive/2011/12/04/2275520.html 本来只想看看书就过了,但是最近在看《设计模式》和《effective C++》这两本书,其中将到很多关于C++中封装,继承和多态的思想,所以不得不做一些笔记。 关于虚函数,在多态当中,一定要将基类的析构函数设置为虚函数并将其实现,只有这样,才能够达到按对象构造的逆序来析构对象;否则,析构的时候,只会析构基类的那一部分,那么派生类那一部分就无法成功析构了。 ?class shape{public:shape(){};virtual void draw. 阅读全文
posted @ 2011-12-30 10:07 super119 阅读(191) 评论(0) 推荐(0)
摘要: 转载自:http://www.cnblogs.com/daoluanxiaozi/archive/2011/12/04/2275364.html §写在前面的学习过C++类的继承与多态的时候,但是很多的童鞋回过头来都忘记之中关于虚函数和纯虚函数的细节,甚至将他们混淆。 §虚函数 虚函数是动态多态性的基础,其调用的方式是动态联编(又称晚期联编,简单解释为只有在程序运行时才决定调用基类的还是子类的,系统会根据基类指针所指向的对象来决定要调用的函数); 非虚函数与其相反,是静态联编(调用已经在编译时期就决定了;在编译时期,系统已经根据指针所属的类型确定了要调用的函数)。 ?cla 阅读全文
posted @ 2011-12-30 10:06 super119 阅读(190) 评论(0) 推荐(0)
摘要: 转载自:http://www.cnblogs.com/BlueTzar/articles/1223313.html 对于普通类型的对象来说,它们之间的复制是很简单的,例如: int a=88; int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。 #include<iostream> usingnamespacestd; classCExample{ private: inta; public: CExample(intb) {a=b;} voidShow() { cout<<a<<endl 阅读全文
posted @ 2011-12-30 10:01 super119 阅读(184) 评论(0) 推荐(0)