这里面还有错误该怎样改呀,还有能优化一下程序就更不错了

/*在此基础上开发一个小区养狗管理程序。功能包括:
1.某主人认养一只狗
2.某主人把自己养的狗转让给别的主人
3.能正确显示某主人养了哪些狗,以及某狗的主人是谁*/
#include<iostream>
using namespace std;
class CMaster;
class CDog
{
	int id;
	CMaster* master;
public:
	CDod(int id_);
	void setMaster(CMaster &m);
	void print();
};
class CMaster
{
	int id;
	CDog *dogs[10];
	int dogNum;
public:
	CMaster();//无参构造函数
	CMaster(int id_);//有参构造函数
	int getId();
	void setDog(CDog *d);
	void delDog(CDog *d);//delete
	void print();
};
CMaster::CMaster()
{
	id=0;
}
CMaster::CMaster(int id_)
{
	id=id_;dogNum=0;
}
int CMaster::getId()
{
	return id;
}
void CMaster::setDog(CDog *d)
{
	dogs[dogNum++]=d;
	dogs[dogNum-1]->setMaster(*this);
}
void CMaster::delDog(CDog *d)
{
	int i,j;
	for(i=0;i<dogNum;i++)
		if(dogs[i]==d)
		{
			for(j=i;j<dogNum-1;j++)
				dogs[j]=dogs[j+1];
			dogNum--;
			break;
		}
}
void CMaster::print()
{
	cout<<"masterid="<<id<<";"<<endl;
	for(int i=0;i<dogNum;i++)
	{
		cout<<i<<":";
		dogs[i]->print();
	}
	cout<<endl;
}
CDog::CDog(int id_)
{
	id=id_;
}
void CDog::setMaster(CMaster &m)
{
	master=&m;
}
void CDog::print()
{
	cout<<"dogid="<<id<<" "<<"master="<<master->getId()<<endl;
}
int main()
{
	CMaster m1(2),m2(2);
	CDog dog1(10),dog2(20);
	m1.setDog(&dog1);
	m1.setDog(&dog2);
	m1.print();
	m2.print();
	cout<<"******************************"<<endl;
	m2.setDog(&dog1);
	m1.delDog(&dog1);
	m1.print();
    cout<<"******************************"<<endl;
	m2.print();
	cout<<"******************************"<<endl;
	dog1.print();
	dog2.print();
	return 1;
}








 

CDog的构造函数你拼错了:

 CDod(int id_);  应该是CDog(int id_); 

代码如下:

/*在此基础上开发一个小区养狗管理程序。功能包括:
1.某主人认养一只狗
2.某主人把自己养的狗转让给别的主人
3.能正确显示某主人养了哪些狗,以及某狗的主人是谁*/
#include<iostream>
using namespace std;
class CMaster;
class CDog
{
	int id;
	CMaster* master;
public:
	CDog(int id_);  //修改1CDod  名字写错了
	void setMaster(CMaster &m);
	void print();
};
class CMaster
{
	int id;
	CDog *dogs[10];
	int dogNum;
public:
	CMaster();//无参构造函数
	CMaster(int id_);//有参构造函数
	int getId();
	void setDog(CDog *d);
	void delDog(CDog *d);//delete
	void print();
};
CMaster::CMaster()
{
	id=0;
}
CMaster::CMaster(int id_)
{
	id=id_;dogNum=0;
}
int CMaster::getId()
{
	return id;
}
void CMaster::setDog(CDog *d)
{
	dogs[dogNum++]=d;
	dogs[dogNum-1]->setMaster(*this);
}
void CMaster::delDog(CDog *d)
{
	int i,j;
	for(i=0;i<dogNum;i++)
		if(dogs[i]==d)
		{
			for(j=i;j<dogNum-1;j++)
				dogs[j]=dogs[j+1];
			dogNum--;
			break;
		}
}
void CMaster::print()
{
	cout<<"masterid="<<id<<";"<<endl;
	for(int i=0;i<dogNum;i++)
	{
		cout<<i<<":";
		dogs[i]->print();
	}
	cout<<endl;
}
CDog::CDog(int id_)
{
	id=id_;
}
void CDog::setMaster(CMaster &m)
{
	master=&m;
}
void CDog::print()
{
	cout<<"dogid="<<id<<" "<<"master="<<master->getId()<<endl;
}
int main()
{
	CMaster m1(2),m2(2);
	CDog dog1(10),dog2(20);
	m1.setDog(&dog1);
	m1.setDog(&dog2);
	m1.print();
	m2.print();
	cout<<"******************************"<<endl;
	m2.setDog(&dog1);
	m1.delDog(&dog1);
	m1.print();
	cout<<"******************************"<<endl;
	m2.print();
	cout<<"******************************"<<endl;
	dog1.print();
	dog2.print();
	return 1;
}