2013年4月10日

摘要: 1、多重继承(无虚函数覆盖)下面,再让我们来看看多重继承中的情况,假设有下面这样一个类的继承关系。注意:子类并没有覆盖父类的函数。对于子类实例中的虚函数表,是下面这个样子:我们可以看到:1)每个父类都有自己的虚表。2)子类的成员函数被放到了第一个父类的表中。(所谓的第一个父类是按照声明顺序来判断的)这样做就是为了解决不同的父类类型的指针指向同一个子类实例,而能够调用到实际的函数。2、多重继承(有虚函数覆盖)下面我们再来看看,如果发生虚函数覆盖的情况。下图中,我们在子类中覆盖了父类的f()函数。下面是对于子类实例中的虚函数表的图:我们可以看见,三个父类虚函数表中的f()的位置被替换成了子类的函数 阅读全文
posted @ 2013-04-10 22:49 江在路上 阅读(90) 评论(0) 推荐(0) 编辑
 
摘要: 1、没有任何数据成员和成员函数的空类#include <iostream.h> #include <string.h> class A{};void main(void) { cout << sizeof(A) << endl; // 1 ,为什么是1,不懂啊 return; }2、为类A添加一个非虚函数#include <iostream.h> #include <string.h> class A{public: int add(int i) { return ++i; }};void main(void) { cou 阅读全文
posted @ 2013-04-10 21:47 江在路上 阅读(208) 评论(0) 推荐(0) 编辑
 
摘要: #include <iostream.h> #include <string.h> void fun(char str[6])//退化为指针{ cout << sizeof(str) << endl;}void main(void) { char str[13]="Hello world!"; char *pStr="Hello world!"; cout<<sizeof(str)<<endl; cout<<sizeof(pStr)<<endl; cout&l 阅读全文
posted @ 2013-04-10 20:03 江在路上 阅读(140) 评论(0) 推荐(0) 编辑
 
摘要: operator的一个用途是用于类型转换函数:类型转换函数的特征:1)类型转换函数定义在源类中;2)须由operator修饰,函数名称是目标类型名或目标类名;3)函数没有参数,没有返回值,但是有return语句,在return语句中返回目标类型数据或调用目标类的构造函数。类型转换函数主要有两类:1)对象向基本数据类型转换:2) 对象向不同类的对象的转换:简单的例子#include <iostream>using namespace std;class CArea{ float area;public: CArea() { area... 阅读全文
posted @ 2013-04-10 13:26 江在路上 阅读(412) 评论(0) 推荐(0) 编辑
 
摘要: 用法:const_cast<type_id> (expression)该运算符用来修改类型的const或volatile属性。除了const 或volatile修饰之外, type_id和expression的类型是一样的。一、指向常量的指针被转化成指向非常量的指针,并且仍然指向原来的对象;二、指向常量的引用被转换成指向非常量的引用,并且仍然指向原来的对象;#include<iostream>using namespace std;class B{ public: int m_iNum; B() {}};void foo(){ const B b1; //b1.m... 阅读全文
posted @ 2013-04-10 09:27 江在路上 阅读(122) 评论(0) 推荐(0) 编辑

2013年4月9日

摘要: #include<iostream.h> //注意这里使用带h的头文件,不然在vc里编译通不过 //再次强调下,只要是在classmember中有pointer的存在,class就应该提供copyconstructor和operator=.class A{public: A():data(0){}; A(A &b) { cout << "copy constructor" << endl; data = b.data + 2; } A(int _data):data(_data){}; A&... 阅读全文
posted @ 2013-04-09 21:28 江在路上 阅读(138) 评论(0) 推荐(0) 编辑

2013年4月8日

摘要: 1、请说明/bin不/usr/bin目录所放置的执行文件有何不同之处?/bin主要放置在开机时,以及进入单人维护模式后还能够被使用的指令,至二/usr/bin则是大部分软件提供的指令放置处。2、请说明/bin不/sbin目录所放置的执行文件有何不同之处?/bin放置的是一般用户惯用的指令,至二/sbin则是系统管理员才会使用到的指令。不过/bin和/sbin都与开机、单人维护模式有关。 更多的执行档会被放置到/usr/bin及/usr/sbin底下。3、目录:. 本目录.. 上一层目录- 前一个目录~ 当前用户home目录~aa 用户aa的home目录在所有目录下面都会有两个目录 .和... 阅读全文
posted @ 2013-04-08 21:37 江在路上 阅读(129) 评论(0) 推荐(0) 编辑
 
摘要: 预备知识:1、头文件可以使用-I标志来包含保存在子目录或者非标准位置中的头文件,例如gcc -Iusr/openwin/include fred.c2、库文件仅仅把库文件放在标准目录中,就希望编译器能够找到它是不够的,库文件必须遵循特定的命名规范并且需要在命令行中明确指定。(1)、静态库也称作归档文件(archive),后缀名.a,例如:gcc -o fred fred.c /usr/lib/libm.a对源文件fred.c进行编译,将编译产生的文件命名为fred,并且引用libm.a库文件例如:gcc -o fred fred.c -lm-lm代表的是标准目录(本例是/usr/lib)内.. 阅读全文
posted @ 2013-04-08 21:32 江在路上 阅读(144) 评论(0) 推荐(0) 编辑
 
摘要: 读、写 、执行权限的再回首我们知道权限对于用户来说是非常重要的,因为它可以限制用户能不能读取/建立/删除/修改文件或者目录!一、让用户能进入某目录成为『可工作目录』的基本权限为何:? 可使用的指令:例如 cd 等变换工作目录的指令;? 目录所需权限:用户对这个目录至少需要具有 x 的权限? 额外需求:如果用户想要在这个目录内利用 ls 查阅文件名,则用户对此目录还需要 r 的权限。二、用户在某个目录内读取一个文件的基本权限为何?? 可使用的指令:例如 cat, more, less等等? 目录所需权限:用户对这个目录至少需要具有 x 权限;? 文件所需权限:使用者对文件至少需要具有 r d的限 阅读全文
posted @ 2013-04-08 21:30 江在路上 阅读(198) 评论(0) 推荐(0) 编辑
 
摘要: 2013.8.25补充1、没有进行初始化的实例变量的值是任意的,例如:class A{public: int a;};A a;count using namespace std;class A{public: A(); //如果不定义任何构造函数,系统会自动添加... 阅读全文
posted @ 2013-04-08 21:29 江在路上 阅读(134) 评论(0) 推荐(0) 编辑