测试你的c++水平
#include <iostream.h>class a
{
public:
a(){}
virtual void prit();
void call();
};
void a::prit()
{
cout<<"class a"<<endl;
}
void a::call()
{
prit();
}
class b:public a
{
public:
b(){}
virtual void prit();
void test();
};
void b::prit()
{
cout<<"class b"<<endl;
}
void b::test()
{
a::prit();
}
void main()
{
a c1;
b c2;
//call()
c2.call();
}
这段程序结果应该是多少?
一般是这样玩的
#include <iostream.h>class a
{
public:
a(){}
virtual void prit()=0;
void call();
};
void a::prit()
{
cout<<"class a"<<endl;
}
void a::call()
{
prit();
}
class b:public a
{
public:
b(){}
void prit();
void test();
};
void b::prit()
{
cout<<"class b"<<endl;
}
void b::test()
{
a::prit();
}
void main()
{
b c2;
a &c1=c2;
c1.call();
} c2.call();调用的是a::call()函数
call()函数调用prit()函数 那这个函数为什么是b中的prit()函数 不是a中的
就是因为把c2声明为b的原因吗 深奥 因为a里面的prit()是虚函数,而已b是a的子类,b里对prit()进行了重写,肯定会调用子类里的函数!MFC不是总用子类重写父类的虚函数来实现你想要的功能的嘛~ 嘿嘿,这个貌似还是看懂的拉 [tk09] [tk09] [tk09] 那答案是什么啊??? 答案:
class b 长见识了... 派生类函数覆盖基类函数 还没学到那里还得研究研究 学习中,吸收你的识知 学习ING 找工作中ING 这个问题摆出来....
初学者? [tk05] 这个怎么编译不了??
#warning This file includes at least one deprecated or antiquated header.
为什么会提示这个??
页:
[1]
