#include<iostream>
//struct Point
//{
// int x;
// int y;
// //c結構體中不能定義函數 c++中可以
// //結構體是一種特殊的類
// void output()
// {
// std::cout<<x<<" "<<y<<std::endl;
// }
//
//};
//上面的結構體可以換成類
class Point
{
public:
int x;
int y;
//構造函數
Point()
{
x=0;
y=0;
}
//函數重載
Point(int a,int b)
{
x=a;
y=b;
}
//析構函數
~Point(){}
void output()
{
std::cout<<x<<" "<<y<<std::endl;
}
void output(int x,int y)
{
//這裡并不是對上面的成員變量進行指派,上面的x,y在這裡不可見
//形參和成員變量名字沖突
//x=x;
//y=y;
this->x=x;
this->y=y;
//this指針 是一個隐含的指針 指向對象本身,代表了對象的位址
}
};
void main()
{
Point pt(3,3);
pt.output(5,5);
//std::cout<<pt.x<<" "<<pt.y<<std::endl;
pt.output();
}
//每一個類一定有個構造函數,沒有構造函數,就不能建立對象
//構造函數的作用 産生對象
//每一個類 隻能有一個析構函數,一個對象生命周期結束時,占用的記憶體被回收,由析構函數完成
//析構函數不能帶參數,不能有傳回值
//函數的重載[函數的參數類型以及參數個數不同]