请在以下代码中解释执行顺序

时间:2014-11-08 21:21:20

标签: c++ constructor friend

  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();
    }
    

    输出结果为:

      

    对象析构函数

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

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

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

1 个答案:

答案 0 :(得分:0)

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

main中的最后两个声明和~B()中的声明都是本地函数声明,因此不会“执行”任何操作。