#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();
}
//每一个类一定有个构造函数,没有构造函数,就不能创建对象
//构造函数的作用 产生对象
//每一个类 只能有一个析构函数,一个对象生命周期结束时,占用的内存被回收,由析构函数完成
//析构函数不能带参数,不能有返回值
//函数的重载[函数的参数类型以及参数个数不同]