c ++使用原始类型作为基类

use*_*206 2 c++ inheritance primitive-types

我正在尝试用c ++继承,并尝试创建一个简单的类:

    class Class
    :public int
    {

    };
Run Code Online (Sandbox Code Playgroud)

但是在尝试编译时,我得到了(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>
{

};
Run Code Online (Sandbox Code Playgroud)

我的问题是,直接使用原始类型作为基类非法c ++还是视觉工作室很难,或者我只是简单地做了继承错误; 我似乎无法在任何地方找到答案.

yiz*_*lez 5

在C++中,原始类型不是类.继承处理类.当然,您不能继承原始类型.