#include<iostream>
using namespace std;
class animal
{
string name;
string color;
int age;
public:
virtual void speak() = 0;
animal()
{
name = "none";
color = "none";
age = 0;
}
void print()
{
cout << "name = " << name << endl;
cout << "color = " << color << endl;
cout << "age = " << age << endl;
}
void set_name(string a)
{
name = a;
}
void set_color(string a)
{
color = a;
}
void set_age(int a)
{
age = a;
}
void operator=(string name)
{
set_name(name);
}
};
class cat : public animal
{
public:
void speak() override
{
cout << "meow!" << endl;
}
cat():animal()
{
}
cat(string name):cat()
{
set_name(name);
}
cat(string name, string color):cat(name)
{
set_color(color);
}
cat(string name, string color, int age):cat(name, color)
{
set_age(age);
}
};
int main()
{
cat a;
a = ("Tom"
return 0;
}
Не наследуется оператор. в строке a = ("Tom" компилятор пишет что нет подходящей функции, хотя она описана в родительском классе. если реализую оператор= в классе cat то все работает
using namespace std;
class animal
{
string name;
string color;
int age;
public:
virtual void speak() = 0;
animal()
{
name = "none";
color = "none";
age = 0;
}
void print()
{
cout << "name = " << name << endl;
cout << "color = " << color << endl;
cout << "age = " << age << endl;
}
void set_name(string a)
{
name = a;
}
void set_color(string a)
{
color = a;
}
void set_age(int a)
{
age = a;
}
void operator=(string name)
{
set_name(name);
}
};
class cat : public animal
{
public:
void speak() override
{
cout << "meow!" << endl;
}
cat():animal()
{
}
cat(string name):cat()
{
set_name(name);
}
cat(string name, string color):cat(name)
{
set_color(color);
}
cat(string name, string color, int age):cat(name, color)
{
set_age(age);
}
};
int main()
{
cat a;
a = ("Tom"
return 0;
}
Не наследуется оператор. в строке a = ("Tom" компилятор пишет что нет подходящей функции, хотя она описана в родительском классе. если реализую оператор= в классе cat то все работает