1. class 派生类名 :继承方式 基类名
如:
class BaseClass
{
public :
BaseClass();// 构造函数,无返回类型,可以有参数列表,这里省去
~BaseClass();// 析构函数
}
SubClass:public BaseClass()
{
}
2. 双冒号(::)用法-----域操作符
例:System::Math::Sqrt()相当于System.Math.Sqrt()
A::member就表示类A中的成员member.
B::member就表示类B中的成员member.
3. 初始化列表使用:
如下;
class Point
{
private:
int X,Y;
public:
Point(int xx=0,int yy=0)//类Point的构造函数
{
X=xx;
Y=yy;
}
//拷贝构造函数,Point(Point &p)表示p是point类的一个对象,
//而&p则是这个对象的引用(也就是这个对象的地址)。这是拷贝构造函数的规定,不能变。
Point(Point &p);
int GetX(){return X;}
int GetY(){return Y;}
};
Point::Point(Point &p)//拷贝构造函数的实现,::来表示他是类的构造函数(成员函数)
{
X=p.X;
Y=p.Y;
cout<<"Point拷贝构造函数被调用!"<<endl;
}
class Line
{
private:
Point p1,p2;
double len;
public:
Line(Point xp1,Point yp2);//类Line的构造函数
Line(Line &L);
double GetLen(){return len;}
};
Line::Line(Point xp1,Point yp2):p1(xp1),p2(yp2)//初始化列表方式
{
cout<<"Line构造函数被调用!"<<endl;
double x=double(p1.GetX()-p2.GetX());
double y=double(p1.GetY()-p2.GetY());
len=sqrt(x*x+y*y);
}
Line::Line(Line &L):p1(L.p1),p2(L.p2)
{
cout<<"Line拷贝构造函数被调用!"<<endl;
len=L.len;
}
void main()
{
Point myp1(1,1),myp2(4,5);
Line line(myp1,myp2);
Line line2(line);
cout<<"The Length of the line is:";
cout<<line.GetLen()<<endl;
cout<<"The Length of the line2 is:";
cout<<line2.GetLen()<<endl;
}