05 2013 档案

摘要:------------------------------------------虚基派生类-----------------------------------------class Aclass B: vitual public Aclass C: vitual public Aclass D: public B, public C 从虚基类A中直接派生(类B和类C)或间接派生(类D)的类中,其构造函数的初始化列表中都要列出对虚基类A构造函数的调用,但只有用于创建对象的那个派生类的构造函数才能够真正调用虚基类A构造函数,而该派生类的基类构造函数的初始化表中列出的对虚基类A的构造函数调用. 阅读全文
posted @ 2013-05-14 15:09 sky&moon 阅读(441) 评论(0) 推荐(0) 编辑
摘要:---------------友元的成员函数------------------------------#include <iostream>#include <cmath>using namespace std;class Point; //声明Point类class line //定义line类{ public: float dis(Point& p1,Point& p2); // 友元函数的原型,作为line类的成员函数};class Point ... 阅读全文
posted @ 2013-05-14 09:38 sky&moon 阅读(310) 评论(0) 推荐(0) 编辑
摘要:----------------------- 析构函数--------------------------------------- 析构函数名也应与类名相同,只是在函数名前面加一个位取反符~,例如~stud( ),以区别于构造函数。它不能带任何参数,也没有返回值(包括void类型)。只能有一个析构函数,不能重载。如果用户没有编写析构函数,编译系统会自动生成一个缺省的析构函数(即使自定义了析构函数,编译器也总是会为我们合成一个析构函数,并且如果自定义了析构函数,编译器在执行时会先调用自定义的析构函数再调用合成的析构函数),它也不进行任何操作。所以许多简单的类中没有用显式的析构函数。----. 阅读全文
posted @ 2013-05-10 14:34 sky&moon 阅读(135) 评论(0) 推荐(0) 编辑
摘要:-----------------函数指针----------------------函数指针的声明方式:返回类型 (*指针名)(参数列表)例如:int (*compare)(const char*,const char*);#include <iostream>typedef int (*hs)(int,int); //typedef用法,hs可以当成类型来用,声明函数指针using namespace std;int add(int x,int y){ return x+y; }int multiply(int m, int n){ return m*n;}hs loo... 阅读全文
posted @ 2013-05-09 21:34 sky&moon 阅读(551) 评论(0) 推荐(0) 编辑
摘要:------指向指针的指针申请内存--------#include <iostream>using namespace std;void getMem(char **p,int num) //参数为指向指针的指针{ *p=new char[num];}int main(){ char *pChar=NULL; getMem(&pChar,10); if (pChar!=NULL) { cout<<"内存申请成功"<<endl; delete[] pChar; //释放内存 } else { cout... 阅读全文
posted @ 2013-05-09 15:52 sky&moon 阅读(144) 评论(0) 推荐(0) 编辑