阅读该程序,给出程序的输出结果。 #include <iostream.h> class C {     friend void print(C c); public:     C(int i) : x(i)     {     }     C() : x(0)     {             cout<<"Default constructor called."<<x<<endl;     }     C(const C& c)     {         x = c.x;         cout << "Copy constructor called." << x << endl;     }     ~C()     {         cout<<"Destructor called."<<x<<endl;     } private:     int x; }; void print(C c) {     cout << c.x << endl; } void main() {     C p[4];     int n=1;     for(int i=0;i<4;i++)         p[i]=C(n++);     for(i=0;i<4;i++)         print(p[i]); }-笔试面试资料

这是qklbishe.com第4969 篇笔试面试资料
提供答案分析,通过本文《阅读该程序,给出程序的输出结果。 #include <iostream.h> class C {     friend void print(C c); public:     C(int i) : x(i)     {     }     C() : x(0)     {             cout<<"Default constructor called."<<x<<endl;     }     C(const C& c)     {         x = c.x;         cout << "Copy constructor called." << x << endl;     }     ~C()     {         cout<<"Destructor called."<<x<<endl;     } private:     int x; }; void print(C c) {     cout << c.x << endl; } void main() {     C p[4];     int n=1;     for(int i=0;i<4;i++)         p[i]=C(n++);     for(i=0;i<4;i++)         print(p[i]); }-笔试面试资料》可以理解其中的代码原理,这是一篇很好的求职学习资料
本站提供程序员计算机面试经验学习,笔试经验,包括字节跳动/头条,腾讯,阿里,美团,滴滴出行,网易,百度,京东,小米,华为,微软等互联网大厂真题学习背诵。

答案:

阅读该程序,给出程序的输出结果。

#include <iostream.h>

class C

{

    friend void print(C c);

public:

    C(int i) : x(i)

    {

    }

    C() : x(0)

    {    

        cout<<"Default constructor called."<<x<<endl;

    }

    C(const C& c)

    {

        x = c.x;

        cout << "Copy constructor called." << x << endl;

    }

    ~C()

    {

        cout<<"Destructor called."<<x<<endl;

    }

private:

    int x;

};

void print(C c)

{

    cout << c.x << endl;

}

void main()

{

    C p[4];

    int n=1;

    for(int i=0;i<4;i++)

        p[i]=C(n++);

    for(i=0;i<4;i++)

        print(p[i]);

}

阅读该程序,给出程序的输出结果。      #include &lt;iostream.h&gt;      class C      {           friend void print(C c);      public:           C(int i) : x(i)           {           }           C() : x(0)           {                   cout&lt;&lt;&quot;Default constructor called.&quot;&lt;&lt;x&lt;&lt;endl;           }           C(const C&amp; c)           {               x = c.x;               cout &lt;&lt; &quot;Copy constructor called.&quot;     &lt;&lt; x &lt;&lt; endl;           }           ~C()           {               cout&lt;&lt;&quot;Destructor called.&quot;&lt;&lt;x&lt;&lt;endl;          }      private:           int x;      };       void print(C c)      {           cout &lt;&lt; c.x &lt;&lt; endl;      }       void main()      {           C p[4];           int n=1;           for(int i=0;i&lt;4;i++)               p[i]=C(n++);           for(i=0;i&lt;4;i++)              print(p[i]);   } 区块链毕设学生286918393号
C p[4];
//调用默认构造函数,输出:
Default constructor called.0
Default constructor called.0
Default constructor called.0
Default constructor called.0

for(int i=0;i<4;i++)
        p[i]=C(n++);
//p[0]=C(1),p[1]=C(2)…赋值运算符重载?右边创建一个临时C对象,语句结束后调用析构函数;输出:
Destructor called.1
Destructor called.2
Destructor called.3
Destructor called.4

for(i=0;i<4;i++)
        print(p[i]);
//注意:print()函数形参为C类型对象,实参为p[i],这会调用复制构造函数,print()产生一个局部C类对象,之后输出x值,print()运行结束,局部对象释放,调用析构函数,输出:
Copy constructor called.1
1
Destructor called.1
Copy constructor called.2
2
Destructor called.2
Copy constructor called.3
3
Destructor called.3
Copy constructor called.4
4
Destructor called.4

最后main()函数运行接收,p[i]数组释放掉,数组元素按照从后向前释放,调用析构函数,输出:
Destructor called.4
Destructor called.3
Destructor called.2

Destructor called.1
ps: 第2个for里面的i前面要加上int

2020-12-21 22:13:34 回复(0)

文章部分来自互联网,侵权联系删除
www.qklbishe.com

区块链毕设网(www.qklbishe.com)全网最靠谱的原创区块链毕设代做网站
部分资料来自网络,侵权联系删除!
资源收费仅为搬运整理打赏费用,用户自愿支付 !
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » 阅读该程序,给出程序的输出结果。 #include <iostream.h> class C {     friend void print(C c); public:     C(int i) : x(i)     {     }     C() : x(0)     {             cout<<"Default constructor called."<<x<<endl;     }     C(const C& c)     {         x = c.x;         cout << "Copy constructor called." << x << endl;     }     ~C()     {         cout<<"Destructor called."<<x<<endl;     } private:     int x; }; void print(C c) {     cout << c.x << endl; } void main() {     C p[4];     int n=1;     for(int i=0;i<4;i++)         p[i]=C(n++);     for(i=0;i<4;i++)         print(p[i]); }-笔试面试资料

提供最优质的资源集合

立即查看 了解详情