1.第一题和第二题的验证

1-1                                                                                                                                                   1-2

在多重继承中,如果派生类的成员与基类的成员重名时,对象名.成员名访问的就是派生类的重名成员。

基类中没有虚函数时,通过基类指针访问派生类时,访问的时当前指向的对象的成员。

 

 

 

 

纯虚函数是在基类中定义的虚函数,它没有函数体,函数体由派生类实现。

2.第三题的源代码

#include<string>
#include<iostream>
using namespace std;
class MachinePets {
public:
	MachinePets(const string s);
	virtual string talk() = 0;
	string getNickname() {
		return nickname;
	}
private:
	string nickname;
};

class PetCats :public MachinePets {
public:
	PetCats(const string s);
	string talk();

};

class PetDogs :public MachinePets {
public:
	PetDogs(const string s);
	string talk();
};

MachinePets::MachinePets(const string s) :nickname(s) {
}

PetCats::PetCats(const string s) : MachinePets(s) {
}
string PetCats::talk()
{
	string a = "鸡你太美~";
	return a;
}
PetDogs::PetDogs(const string s) :MachinePets(s) {
}

string PetDogs::talk()
{
	string a = "bilibili乾杯 []~( ̄▽ ̄)~*~";
	return a;
}

void play(MachinePets *p)
{
	cout << p->getNickname() << "says " << p->talk() << endl;
}
int main() {
	PetCats cat("cxk ");
	PetDogs dog("fans ");
	play(&cat);
	play(&dog);
	system("pause");
	return 0;
}

  

 

第四题

(1)#ifndef——CONTAINER

(2)numOfHeal--

(3)bag.set(bag.nOfHeal()+p.bag.nOfHeal(),bag.nOfMW()+p.bag.nOfMW());

(4)void showinfo(player &p1,player&p2)

(5)piblic player

(6)cout<<setw(50)<<"游戏雨女无瓜,好好毒树!!"<<endl;

(7)cout<<endl<<setw(50)<<"滚去毒树!!!"<<endl;