對一個程式的思考5(C++各種函數調用)

來源:互聯網
上載者:User

標籤:

/**********************************************************************  
 * main.cpp   
 * Compiler: GCC,VS,VC6.0  win32  
 * Author:WK
 * Time: 2015 3 29
 ************************************************************************/  
#include<iostream>
using namespace std;
class Coord
{
public:
    Coord(int a=0,int b=0);
    Coord(const Coord &p);
    ~Coord();
    void print();
    int getx();
    int gety();
private:
    int x,y;

};
void Coord::print()
{
   cout<<x<<"  "<<y<<‘\n‘;
}
int  Coord::getx()
{
  return x;
}
int Coord::gety()
{
  return y;
}
Coord::Coord(int a,int b)
{
   x=a;
   y=b;
   cout<<"這裡只是為了驗證建構函式運行了\n";

}
Coord::~Coord()
{
  cout<<"這裡只是為了驗證解構函式運行了\n";
}
Coord::Coord(const Coord &p)
{
   x=p.x;
   y=p.y;
   cout<<"這裡只是為了驗證拷貝建構函式運行了\n";

}

//普通函數
Coord fun (Coord p)
{
   cout<<"這裡只是為了驗證fun()函數運行了\n";//5.列印出
   int a,b;
   a=p.getx()+10;
   b=p.gety()+20;
 
   Coord r(a,b);//6.調用自訂建構函式給對象r的資料成員分配記憶體並初始化
   return r;    //7.這裡把r的值調用自訂拷貝建構函式賦給系統產生的無名函數用於返回

}
//8.退出fun()函數時候調用自訂解構函式釋放形參p
//9.函數時候調用自訂解構函式釋放函數體內定義的對象r
//10.調用自訂解構函式釋放系統自己產生的無名對象


int main()
{
 Coord p1(30,40);//1.調用自訂建構函式給對象p1的資料成員分配記憶體並初始化
 Coord p2;      // 2.調用自訂預設建構函式給對象p2資料成員分配記憶體並初始化為預設值
 Coord p3(p1); //3.調用自訂拷貝建構函式用p1代入法初始化p3並給p3對象資料成員分配記憶體
 p2=fun(p3);  //4.進入fun()函數先把實參p3對象調用自訂拷貝建構函式初始化fun()的形參
  //這裡p2接受了那個無名對象返回的值
 p2.print();//11.輸出
 return 0;

}//退出main()函數時候就會依次反著調用自訂解構函式來分別釋放p3,p2,p1




對一個程式的思考5(C++各種函數調用)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.