静态成员函数可以直接访问该类的静态数据和函数成员。而访问非静态成员必须通过参数传递方式得到对象名,然后通过对象名来访问。#include<iostream>using namespace std;class point{public:  point(int xx=0,int yy=0){X=xx;Y=yy;} //构造函数  point(point&p);                      //拷贝函数  ~point(){count...
虚函数的声明语法:virtual 函数类型 函数名(形参表){函数体}虚函数的定义只能出现在类的定义中的函数原型中声明中,而不能在成员函数实现的时候由成员函数的调用或者通过指针、引用来访问虚函数for example:#include<iostream>using namespace std;class B0{public:   virtual void display(){cout<<"B0::display()"<<endl;}};class B1: public B0{public:  void display(){cout<<"B1::display...
1.派生类的定义方式:派生类类名(参数):没有用默认构造函数的基类和内嵌对象2.对派生类构造函数的访问顺序:  i>调用基类的构造函数(其访问顺序按其继承的顺序);  ii>调用内嵌成员的构造函数(其访问顺序按其定义的顺序);  iii>调用派生类的构造函数;3.析构函数的顺序与构造函数的顺序刚好相反
类型兼容性规则是指在需要基类对象的任何地方,都可以使用公有派生的对象来替代。其中所指的替代包括一下几种:1>派生类的对象可以赋值给基类对象;2>派生类的对象可以初始化基类的引用;3>派生类的对象的地址可以赋给指向基类的指针;注意:在替代之后,派生类对象可以作为基类的对象使用,但只能使用从基类继承的成员class B{...};class D:public B{...};main(){B b1,*p1; D d1; b1=d1;   //第一类; B&b=d1;  //第二类 P1=&d1;  //第三类...
虚基类是只有一个拷贝;作用分辨符(::)的访问方式:基类::成员(参数)/成员同名隐藏规则:没有虚函数的情况下,派生类中新增的与基类中的函数同名的函数,即使参数个数不同,则基类中的同名函数被覆盖;如果派生类中的多个基类拥有同名成员函数,派生类也新增了同名函数,则基类都被隐藏(这种情况,对派生类的访问用对象名。成员名,对基类的用作用分辨符)。<一>#include<iostream>using namespace std;class B0{public:  int nV;  void fun(){cout<<"B0"<<endl;} };class B1...