找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 1435|回复: 1

这两个程序的区别在哪呢 硬是没有看出来啊 大家帮忙看看

[复制链接]
发表于 2009-11-4 01:29:30 | 显示全部楼层 |阅读模式 IP:江苏扬州
class A
{  public:
    A()
    {
        cout<<"A"<<endl;
    }
    ~A()
    {
        cout<<"~A"<<endl;
    }
};
class B
{
public:
    B(A &a)
    {
        cout<<"B"<<endl;
_a=a;
    }
    ~B()
    {
        cout<<"~B"<<endl;
    }
private:
    A _a;
};
int main()
{
    A a;
    B b(a);
    return 0;
}

class A
{  public:
    A()
    {
        cout<<"A"<<endl;
    }
    ~A()
    {
        cout<<"~A"<<endl;
    }
};
class B
{
public:
    B(A &a):_a(a)
    {
        cout<<"B"<<endl;

    }
    ~B()
    {
        cout<<"~B"<<endl;
    }
private:
    A _a;
};
int main()
{
    A a;
    B b(a);
    return 0;
}
发表于 2009-11-4 01:29:31 | 显示全部楼层 IP:江苏扬州
程序代码:
#include <iostream>
#include <stdlib.h>

using namespace std;
class A
{public:
A(){ cout<<"A"<<endl; }
~A(){ cout<<"~A"<<endl;}
};
class B
{public:
B(A &a){cout<<"B"<<endl; _a=a;}
~B(){cout<<"~B"<<endl;}
private:
    A _a;
};

int main()
{
{
    A a;
    B b(a);
}
    system("pause");
    return 0;
}


从第一个程序分析:首先定义了A类的a对象,因此,调用构造函数输出A
                  然后,定义B类的b对象,并调用B(A &a)的构造函数,因为在调用构造函数的时候会对类成员初始化,但因为没有显式的初始化会调用缺省构造函数,因此再次输出A,(初始化是在构造函数的函数体前完成的),然后进行构造函数体的内容输出B和对_a赋值(注意,初始化和赋值是不同的!)。
所以最后结果是
A
A
B


程序代码:
#include <iostream>
#include <stdlib.h>

using namespace std;
class A
{public:
A(){ cout<<"A"<<endl; }
~A(){ cout<<"~A"<<endl;}
};
class B
{public:
B(A &a):_a(a){cout<<"B"<<endl;}
~B(){cout<<"~B"<<endl;}
private:
    A _a;
};

int main()
{
{
    A a;
    B b(a);
}
    system("pause");
    return 0;
}


对于第二个程序:首先定义了A类的a对象,因此,调用构造函数输出A
                  然后,定义B类的b对象,并调用B(A &a)的构造函数,因为在调用构造函数的时候会对类成员初始化,但是这次有了显式的初始化_a(a);因此调用的是转换构造函数而不是默认的构造函数,因此没有和上面的程序一样输出A,然后进行构造函数体的内容输出B。
所以最后的结果是
A
B
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-10-1 03:26 , Processed in 0.196349 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表