Posted on 2006-06-25 13:35
飞翔 阅读(188)
评论(0) 编辑 收藏 所属分类:
Java
class Teacher : public People
Teacher * t,tobj; People * p,pobj;
1.使用基类指针操作派生类对象。 p = &tobj;0只能访问定义于基类的共有成员。 必须将基类指针强制转换为派生类指针,才能访问派生类的成员。 (Teacher *) p-> ...
2.使用派生类指针操作基类对象 。 t = (Teacher *) &pobj ; 并且如此只能访问基类中的成员,不能访问派生类成员!
***********************************
虚函数(实现多态)
在基类中给方法加上virtual 标记,派生类实现该方法。
则使用时,采用基类指针指向具体子类对象的时候,即可以实现多台。通过指针调用的将是具体子类的改方法。
纯虚函数:
virtual double method const=0; 包含纯虚函数的类称为 抽象类!
类的析构函数应该被设置为虚析构函数
const Teacher t;//常量对象
void method const(){} //常量函数
常量对象不能调用非常量成员函数
常量函数不允许调用非常量成员函数。
**********
文件写对象
ofstream outFile("filename",ios::out| ios::binary);
outFile.write( (char *) &st,sizeof(st)); //st是一个类的对象
infile.read((char *)&st,sizeof(st)); //读取出对象
*******
throw 可以抛出任意类型的异常,比如 int a=0; throw a;
catch(...){ //捕获任意类型的异常
;
}
catch(int){
//捕获整型异常
}
********
函数模板
template <class T>
void sortArray(T b[],int len);
类模板:
template <class T>
class Test{
..
}
所以在类模板外面定义的成员函数都要以template <class T>开头
实例化类对象. Test <int> test;