码迷,mamicode.com
首页 > 编程语言 > 详细

c++mooc第六章小测

时间:2020-06-17 15:33:34      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:turn   mes   int   use   using   ios   fun   print   call   

(红色为补充代码)

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); 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;
class A {
	private:
	int nVal;
	public:
	void Fun()
	{ cout << "A::Fun" << endl; };
	virtual 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(
//补充代码 A*p ) { p->Fun(); p->Do(); } int main() { Call( new A()); Call( new C()); return 0; }
 
 

c++mooc第六章小测

标签:turn   mes   int   use   using   ios   fun   print   call   

原文地址:https://www.cnblogs.com/gongsuiqing/p/13152628.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!