В чем проблема с этой программой?
#include <iostream> #include <conio.h> #include <string> #include <cstdlib> using namespace std; class Dog { private: string breed; string EyeColor; public: Dog(string Breed="",string eyeColor="") {breed=Breed;EyeColor=eyeColor;} string getBreed() {return breed;} string setBreed(string Breed) {breed=Breed;} string getEyeColor() {return EyeColor;} string setEyeColor(string eyeColor) {EyeColor=eyeColor;} friend Dog operator *(Dog d1,Dog d2); void display(){cout<<"Breed: "<<breed<<"; eye color: "<<EyeColor<<endl;} }; Dog operator *(Dog d1,Dog d2) { Dog newDog; if(d1.getBreed()==d2.getBreed()) newDog.setBreed(d1.getBreed()); else newDog.setBreed("Mixed"); int i=rand()%2; if(i==0) newDog.setEyeColor(d1.getEyeColor()); else newDog.setEyeColor(d2.getEyeColor()); return Dog(newDog.getBreed(),newDog.getEyeColor()); } int main() { Dog d1("Labrador","Yellow"), d2("Labrador","Green"), d3("Dog","Yellow"), d4("Mops","Black"); cout<<"dog #1: ";d1.display(); cout<<"dog #2: ";d2.display(); Dog saheb; saheb=d1*d2; cout<<"Result of pair dog: "; saheb.display(); cout<<"dog #3: ";d3.display(); cout<<"dog #4: ";d4.display(); cout<<"Result of pair dog: "; (d3*d4).display(); getch(); return 0; }
Что я уже пробовал:
я пытался решить эту проблему
а. создайте класс собак, включающий поля для породы (например, “Лабрадор”) и цвета глаз. Включите операторы извлечения и вставки.
b. перегрузите функцию operator*()для класса Dog. Когда вы умножаете двух собак, в результате получается собака. Если две собаки-операнда принадлежат к одной и той же породе, то результирующая собака является этой породой; если две собаки-операнда имеют разные породы, то результирующая собака является “смешанной” породой. Получите случайное число 0 или 1 для результирующего цвета глаз собаки. (Инструкции по созданию случайных чисел см. В приложении Е.) Когда выбранное случайное число равно 0, используйте цвет глаз из первого операнда Dog для результирующего цвета глаз собаки; когда случайное число равно 1, Используйте цвет глаз второй собаки для результирующей собаки.
c. напишите функцию main (), в которой вы объявляете четырех родительских собак. Когда вы выполняете программу, убедитесь, что вы назначаете одну и ту же породу двум собакам, а разные породы-каждой из двух других собак. (У вас будет в общей сложности три породы для четырех собак.) Также назначают различные цвета глаз. В цикле умножьте каждую пару восемь раз и отобразите результаты.
Nakhia_ind
как может быть несколько двух объектов, таких как saheb=d1*d2;