*运算符,->运算符重载与智能指针

来源:互联网 发布:ios 判断app网络权限 编辑:程序博客网 时间:2024/06/05 14:11
class person
{
public:
int age;
string name;
public:
person()
{
age = 30;
name = "vinny";
}
void printperson()
{
cout << age << "  " << name << endl;
}
};


class pointer//智能指针
{
public:
person* ppointer;
pointer(person* per)
{
ppointer = per;
}
person* operator->()//重载->
{
return ppointer;
}
person& operator*()//重载*
{
return *ppointer;
}
~pointer()
{
if (ppointer != NULL)
{
delete ppointer;
ppointer = NULL;
}

}
};
void test()
{
pointer p(new person);
p->printperson();//重载->运算符
cout << (*p).age << endl;//重载*运算符
}
0 0
原创粉丝点击