У меня есть два класса.Базовый класс - это фрукты, а производный класс - яблоко.Я использую строки типа для определения типа классов. Однако когда я попытался получить доступ к функции type () экземпляра класса apple, чтобы получить возвращение строки типа, я получил базовый класс 'string type' fruit 'а не "яблоко". Что я должен сделать, чтобы это исправить?Вот мой код:
#include <string>
class fruit
{
public:
std::string type();
private:
static const std::string _typeStr;
}
const std::string fruit::_typeStr = "fruit";
std::string fruit::type()
{
return _typeStr;
}
class apple:public fruit
{
private:
static const std::string _typeStr;
}
const std::string apple::_typeStr = "apple";
В файле main.cpp:
#include <iostream>
#include "fruit.h"
int main()
{
apple::apple a;
cout<<a.type()<<endl;
return 1;
}
В выходных данных:
fruit