程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 復制構造函數實例

復制構造函數實例

編輯:C++入門知識

[cpp] #include<iostream>  
#include<cstring>  
#include<cstdio>  
#include<algorithm>  
#include<cstdlib>  
#include<ctime>  
#include<fstream>  
#include<climits>  
using namespace std; 
 
class Point 

public: 
    Point(double x, double y){}; 
    Point(Point &p); 
private: 
    double x, y; 
}; 
 
Point::Point(Point &p):x(p.x), y(p.y) 

    cout<<"calling copy gouzao of point"<<endl; 

 
class Line 

public: 
    Line(Point p1, Point p2); 
    Line(Line &l); 
private: 
    Point p1, p2; 
}; 
//Point有形參,所以只能用初始化列表初始化  
//需要用初始化列表初始化:1.內嵌對象有參數表 2.常成員,需要綁定一個對象  
Line::Line(Point mp1, Point mp2):p1(mp1), p2(mp2) 

    cout<<"calling gouzao of line"<<endl; 

 
Line::Line(Line &l):p1(l.p1), p2(l.p2) 

    cout<<"calling copy gouzao of line"<<endl; 

 
int main() 

    Point myp1(3, 5), myp2(3, 6); 
    Line myl(myp1, myp2); 
    Line myl2(myl); 
    return 0; 

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<cstdlib>
#include<ctime>
#include<fstream>
#include<climits>
using namespace std;

class Point
{
public:
 Point(double x, double y){};
 Point(Point &p);
private:
 double x, y;
};

Point::Point(Point &p):x(p.x), y(p.y)
{
 cout<<"calling copy gouzao of point"<<endl;
}

class Line
{
public:
 Line(Point p1, Point p2);
 Line(Line &l);
private:
 Point p1, p2;
};
//Point有形參,所以只能用初始化列表初始化
//需要用初始化列表初始化:1.內嵌對象有參數表 2.常成員,需要綁定一個對象
Line::Line(Point mp1, Point mp2):p1(mp1), p2(mp2)
{
 cout<<"calling gouzao of line"<<endl;
}

Line::Line(Line &l):p1(l.p1), p2(l.p2)
{
 cout<<"calling copy gouzao of line"<<endl;
}

int main()
{
 Point myp1(3, 5), myp2(3, 6);
 Line myl(myp1, myp2);
 Line myl2(myl);
 return 0;
}

 

運行結果如下:

 \



摘自 飄過的小牛
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved