C++变量的可见性问题及多态性
1.变量的可见性问题是一个重要的、常见的但是初学者容易混淆的一个问题。先看下面的示例代码:
Class Point
{
public:
int x;
int y
point(int a,int b)
{
x=a;
y=b;
}
void OutPut()
{
cout<x=x;
this->y=y;
}
其输出结果就是:5,5;
2.C++的多态性,是面向对象程序设计的重要部分,也是容易混淆的部分。如下面示例代码所示:
Class Animal
{
public:
void breathe()
{
cout<<"Animal breathe"<breathe();
}
void main()
{
Animal* pAn;
Fish fish;
pAn=&fish;
fish.fn(pAn);
}
程序的运行结果输出的是:Animal breathe;
这段程序的愿意是:构造一Fish对象,然后让父类的指针指向子类的首地址,然后再用子类对象去调用子类的成员函数void breathe(){cout<<"Fish bubble"<breathe();
}
void main()
{
Animal* pAn;
Fish fish;
pAn=&fish;
fn(pAn);
}
其运行结果为:Fish bubble;