У меня есть этот класс с этим перечислением:
class Artifact{
public:
enum class artifactType{vase,jewelry,partialRelic,unknown};
...
В этом классе я сделал эту функцию печати:
void print(std::ostream& os){
os<<"discoveryDate_:"<<discoveryDate_<<"-"<<"estimatedDateOfOrigin_:"<<estimatedDateOfOrigin_<<"-"<<"Enum that i dont know how to print:"<<"-----";
}
Прежде всего, я не знаю, как напечатать это enum и second, у меня есть 2 производных класса, которые наследуют этот класс:
class GreekArtifact : public Artifact{
private:
std::string nameOfGod_; //specific attribute
}
, и эта печать не работает
void print(std::ostream& os) {
Artifact::print(os);
os <<" God:"<<nameOfGod_;
}
У меня нет ошибки, но она просто не показывает nameOfGod потому что в основном я создал список артефактов, и когда я печатаю, он показывает, что находится в печати класса Artifact, а не в атрибуте speci c. Я перегружен оператор << </p>
std::ostream& operator<<(std::ostream& os,const std::list<Artifact>& b){
for(auto it : b){
it.print(os);
os<<"\n";
}
return os;
}