永发信息网

一个继承了以自己为模板入参的类,C++是如何构造的

答案:4  悬赏:20  手机版
解决时间 2021-11-16 23:23
  • 提问者网友:半生酒醒
  • 2021-11-16 19:40
一个继承了以自己为模板入参的类,C++是如何构造的
最佳答案
  • 五星知识达人网友:傲气稳了全场
  • 2021-11-16 20:00
先调用A的构造函数,再调用B的构造函数。所以如果A中含有B类型的成员变量,就会无限递归,编译不了。
全部回答
  • 1楼网友:怀裏藏嬌
  • 2021-11-16 23:18
很不懂你的意思啊?详细点?追问B继承了以自己为模板参数的模板类A ,我想知道B类的构造过程追答这与模板没啥关系,与
以自己为模板入参
也没啥关系吧

构造顺序跟普通类没啥区别吧,还是 父类(A) ->子类(B)-》本身类(B)追问我只是有点怀疑,在B类没有构造完成的时候,使用B类作为模板参数,对模板类是否有影响。
会不会产生,模板类寻找模板参数类型B,B为构造完成,这种情况。试验下来B还是构造完成了,模板类的继承和模板参数没有关系吗?追答其实这就相当于B类有个成员是B的对象。构造过程与模板没啥关系的

看LX的,说的不错啊

建议采纳他的,他指出了关键问题所在!追问

编译不了的理论,明显是错误的!不信你可以自己编译一下。

我想知道的也是,为什么递归这种理论,没有在这个构造过程实现。

追答template
class A
{
    private:
        T subdata;
};

class B:public A
{
};

你再试试,你没理解他的意思啊

  • 2楼网友:玩家
  • 2021-11-16 21:33
我记得设计模式里面有种模式是这种,不过如果是T组合进去的话,估计构造会陷入无限递归,T以指针形式存在的话,就直接创建4字节指针就行了,先构造A再构造B。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯