相关疑难解决方法(0)

为什么我不能在C++中继承int?

我很想能够做到这一点:

class myInt : public int
{

};
Run Code Online (Sandbox Code Playgroud)

为什么我不能?

我为什么要这样?更强的打字.例如,我可以定义两个类intAintB,这让我做intA + intAintB + intB,但不是intA + intB.

"Ints不是课程." 所以呢?

"Ints没有任何会员数据." 是的,他们有,他们有32位,或其他什么.

"Ints没有任何会员功能." 好吧,他们有很多像+和的运营商-.

c++ inheritance integer language-design strong-typing

58
推荐指数
8
解决办法
2万
查看次数

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

我正在尝试用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 ++还是视觉工作室很难,或者我只是简单地做了继承错误; 我似乎无法在任何地方找到答案.

c++ inheritance primitive-types

2
推荐指数
1
解决办法
1351
查看次数