Quantcast
Channel: CSDN博客推荐文章
Viewing all articles
Browse latest Browse all 35570

拷贝构造函数

$
0
0

今天审核题库,发现了一个很有趣的问题,拿来分享。

#include<iostream>
using namespace std;
class Sample { 
    public:
        int x;
    public: 
        Sample(){}; 
        Sample(int a){
			x=a;
		}
        Sample(Sample &a){
			x=a.x++ +10;
		}
        void disp(){
			cout<<"x="<<x<<endl;
		}
};
int main() {
    Sample s1(2),s2(s1);
    s1.disp();
    s2.disp();
    return 0;
}
    程序输出结果为:3,12。

    分析:

  1.     实例化s1之后,s1.x = 2。
  2.     实例化s2之后,调用拷贝构造函数,s1.x = 3;
  3.     由于“先用后增”,s2.x = 12。

作者:twlkyao 发表于2013-12-22 0:26:08 原文链接
阅读:130 评论:0 查看评论

Viewing all articles
Browse latest Browse all 35570

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>