наследование — c ++ с использованием примитивных типов в качестве базового класса

Я пробовал наследование в c ++ и пытался создать простой класс:

    class Class
:public int
{

};

Но при попытке компиляции я получаю (Visual Studio 2013) ошибку C3770 «int» не является допустимым базовым классом. Эта ошибка также возникает с другими примитивными типами, такими как bools chars и longs.

Тем не менее, использование пользовательского класса обертывания класса работает нормально:

template<typename T>
class Wrapper
{
T Object;
public:
operator T&(){return Object;}
};

class Class
:public Wrapper<int>
{

};

Мой вопрос заключается в том, использует ли примитивные типы непосредственно в качестве базового класса нелегальный c ++, или это сложная визуальная студия, или я просто неправильно делаю наследование; Кажется, я нигде не могу найти ответ.

2

Решение

В C ++ примитивные типы не являются классами. Наследование имеет дело с классами. Естественно, вы не можете наследовать примитивный тип.

5

Другие решения


По вопросам рекламы [email protected]