【问题标题】:Please explain the sequence of execution in the following code请在下面的代码中解释执行顺序
【发布时间】:2015-01-05 11:36:26
【问题描述】:
  1. 我正在尝试解决一个测验并遇到了这个问题。
    请解释导致此输出的内部发生的情况

    class B;
    
    class A { 
        friend class B;
    
        public: 
        ~A() {
            B boj();
            cout << "object A destructor " << endl;
        } 
    }; 
    
    class B  { 
        public: 
        ~B() { cout << "object B destructor " << endl; } 
    }; 
    
    int main() { 
        A a;
        A aobj(); 
        B bobj();
    }
    

    输出是:

    对象A的析构函数

  2. 我正在尝试创建一个程序,如果用户希望添加另一条记录,则在该程序中输入,如果是,则为该记录创建一个新对象。

    如果我包含构造函数,那么我如何在每次用户需要时创建一个新对象?

    (如果我给对象数组一个预定义的大小,那么构造函数将被调用,比如说 50 次并初始化所有 50 个对象,而用户可能只想输入更少)。

【问题讨论】:

  • 每个问题一个问题,请。您希望我们回答哪一个?
  • @TheParamagneticCroissant:是的,我在回答中已经说过了。
  • @LightnessRacesinOrbit 不是针对您,而是针对 OP。当您撰写答案时,我正在输入我的评论。

标签: c++ constructor friend


【解决方案1】:

首先,构造a。然后,a 被销毁。

main 中的最后两个声明和~B() 中的声明都是本地函数 声明,因此不“做”任何事情。

【讨论】:

    猜你喜欢
    • 2015-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-05
    • 1970-01-01
    • 2018-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多