*运算符,->运算符重载与智能指针
2017-04-24 22:03
288 查看
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;//重载*运算符
}
{
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;//重载*运算符
}
相关文章推荐
- 智能指针:->和*运算符重载 + 模板技术 实现智能指针(C++)
- C/C++:智能指针原理(运算符重载)、使用auto_ptr<A>
- 运算符重载之->为下标成员运算符,而不是指针
- C++文本查询程序 定义类管理数据 用智能指针 用StrBlob代替vector<string> C++Primer 练习12.32
- c++:成员指针运算符 .* 和 ->*
- C++文本查询程序 定义类管理数据 用智能指针 用StrBlob代替vector<string> C++Primer 练习12.32
- c中取地址运算符&与指针取成员运算符->的优先级
- 智能指针的->和 * 重载
- 类型转换运算符、*运算符重载、->运算符重载、operator new 和 operator delete
- C++文本查询程序 定义类管理数据 用智能指针 用StrBlob代替vector<string> C++Primer 练习12.32
- 运算符重载(复数运算(+、-、*重载),输入、出类对象(流类运算符>>/<<的重载))
- C++文本查询程序 定义类管理数据 用智能指针 用StrBlob代替vector<string> C++Primer 练习12.32
- 成员指针运算符 .* 和 ->*
- C++ 智能指针类型转换(父类->子类,子类->父类)
- C++文本查询程序 定义类管理数据 用智能指针 用StrBlob代替vector<string> C++Primer 练习12.32
- sp<> wp<>-Android中定义了两种智能指针强指针sp和弱指针wp
- C++文本查询程序 定义类管理数据 用智能指针 用StrBlob代替vector<string> C++Primer 练习12.32
- 一个类似auto_ptr<>用于动态分配数组的智能指针
- error C2064: 项不会计算为接受 2 个参数的函数 1> 类不会将“operator()”或用户定义的转换运算符定义到指向函数的指针或指向函数的引用(它们接受适当数量的参数
- [置顶] 从零开始学C++之boost库(一):详解 boost 库智能指针(scoped_ptr<T> 、shared_ptr<T> 、weak_ptr<T> 源码分析)