程序设计与算法(三)第06周测验
001:看上去像多态
#include <iostream> using namespace std; class B { private: int nBVal; public: void Print() { cout << "nBVal=" << nBVal << endl; } void Fun() { cout << "B::Fun" << endl; } B(int n) { nBVal = n; } }; // 在此处补充你的代码 class D:public B { private: int nDVal; public: D(int nDval_) :nDVal(nDval_),B(3*nDval_){}; void Fun() { cout << "D::Fun" << endl; } void Print() { B::Print(); cout << "nDVal=" << nDVal << endl; } }; int main() { B * pb; D * pd; D d(4); d.Fun(); pb = new B(2); pd = new D(8); pb->Fun(); pd->Fun(); pb->Print(); pd->Print(); pb = &d; pb->Fun(); pb->Print(); return 0;}
002:Fun和Do
#include <iostream> using namespace std; class A { private: int nVal; public: void Fun() { cout << "A::Fun" << endl; }; void Do() { cout << "A::Do" << endl; } }; class B :public A { public: virtual void Do() { cout << "B::Do" << endl; } }; class C :public B { public: void Do() { cout << "C::Do" << endl; } void Fun() { cout << "C::Fun" << endl; } }; void Call(B &p // 在此处补充你的代码 ) { p.Fun(); p.Do(); } int main() { C c; Call(c); system("pause"); return 0; }
003:这是什么鬼delete
#include <iostream> using namespace std; class A { public: A() { } virtual ~A(){cout << "destructor A" << endl;} }; class B:public A { public: ~B() { cout << "destructor B" << endl; } }; int main() { A * pa; pa = new B; delete pa; return 0; }
004:怎么又是Fun和Do
#include <iostream> using namespace std; classA { private: int nVal; public: void Fun() { cout << "A::Fun" << endl; }; virtual void Do() { cout << "A::Do" << endl; } }; classB:public A { public: virtual void Do() { cout << "B::Do" << endl;} }; classC:public B { public: void Do( ) { cout <<"C::Do"<<endl; } void Fun() { cout << "C::Fun" << endl; } }; void Call( A *p ) { p->Fun(); p->Do(); } int main() { Call( new A()); Call( new C()); return 0; }
#include <iostream> using namespace std; classA { public: A() { } virtual ~A(){cout << "destructor A" << endl;} }; classB:public A { public: ~B() { cout << "destructor B" << endl; } }; int main() { A * pa; pa = new B; delete pa; return 0; }
不念过往,不惧未来

浙公网安备 33010602011771号