
mfc应用程序,从cview派生类的Cmyview肯定构造了一个对象,那么内存中有没有cview对象呢
1个回答
展开全部
由于Cmyview是继承CView,则按C++语法和正确的逻辑,在实例化Cmyview时,先调用其父类构造函数,然后再调用Cmyview的构造函数,这样实例化的对象才能确保是正确的。假如就只有这两级,即假定CView已经是根类了,则:
Cmyview m; // 依次调用了CView的构造函数及Cmyiew的构造函数,但是只有类型为Cmyview的一个对象产生。
构造函数的调用可以一直追溯到其根类,则有多少层次,就会有多少构造函数被调用,调用顺序是从根类开始,直到最后的派生类构造函数结束;析构则刚好相反。
你要清晰这样的概念:
并非调用一次构造函数就要生成一个对象,而是生成一个对象必须至少有一个构造函数被调用。
Cmyview m; // 依次调用了CView的构造函数及Cmyiew的构造函数,但是只有类型为Cmyview的一个对象产生。
构造函数的调用可以一直追溯到其根类,则有多少层次,就会有多少构造函数被调用,调用顺序是从根类开始,直到最后的派生类构造函数结束;析构则刚好相反。
你要清晰这样的概念:
并非调用一次构造函数就要生成一个对象,而是生成一个对象必须至少有一个构造函数被调用。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询