C++中,A派生B,B派生C,C派生D.那么构造D时,先构造A还是先构造C?

发布网友

我来回答

4个回答

热心网友

显然是先A后C
构造函数就像盖房子一样,从最下面一层盖到最高一层,所以构造函数的调用顺序为ABCD
析构函数就像拆房子一样,从最上面一层拆到最下面一层,所以析构函数的调用顺序为DCBA

热心网友

构造函数 A->B->C->D
析构函数 D->C->B->A

先构造A

热心网友

子类的构造函数(如果你不显式调用的话)会默认先调用父类的无参构造函数,(当然,如果你没写任何构造函数,类定义里面也没有虚函数,这一级不用构造。)所以,构造函数的调用将会从最基类开始构造,沿着派生顺序逐级构造。所以便有:A->B->C->D

热心网友

肯定是先构造A啦,

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com