Задать вопрос
blowin
@blowin

Как исправить ошибку конвертации?

template<typename T>
class MySwither{
public:
    virtual void SetData(T data) = 0;
    virtual T GetData() = 0;
};

class AthleteForm : MySwither<int> {
private:
    int a;
public:
    AthleteForm() : a(0){}
    void SetData(int data){
        a = data;
    }
    int GetData(){
        return a;
    }
};

template<typename T>
class AbsObj{
public:
    AbsObj(){}
    MySwither<T> *obj;
};


class IntObj : public AbsObj<int>{
public:
    IntObj(){
        obj = new AthleteForm;
    }
    ~IntObj(){
        if(obj != nullptr){
            delete obj;
        }
    }
};

int main(int argc, char *argv[])
{
    IntObj obj;
    return 0;
}


error 'MySwither' is an inaccessible base of 'AthleteForm'
AbsObj::obj = new AthleteForm;
  • Вопрос задан
  • 127 просмотров
Подписаться Простой Комментировать
Решения вопроса 1
vt4a2h
@vt4a2h Куратор тега C++
Senior software engineer (C++/Qt/boost)
Вам нужно поправить ровно то, о чём гласит текст ошибки: class AthleteForm : public MySwither<int>.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы