• 学习杂记 - [工作]

    2008-09-17

    Tag:

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://www.blogbus.com/chaoyueziwo21-logs/29219416.html

    一个有趣的现象是,成员对象初始化的次序完全不受它们在初始化表中次序的影响,只由成员对象在类中声明的次序决定。

    拷贝构造函数和赋值函数非常容易混淆,常导致错写、错用。拷贝构造函数是在对象被创建时调用的,而赋值函数只能被已经存在了的对象调用。以下程序中,第三个语句和第四个语句很相似,你分得清楚哪个调用了拷贝构造函数,哪个调用了赋值函数吗?

     

      String a(“hello”);

      String b(“world”);

      String c = a; // 调用了拷贝构造函数,最好写成 c(a);

      c = b; // 调用了赋值函数

      本例中第三个语句的风格较差,宜改写成String c(a) 以区别于第四个语句。 

    分享到: