25 运算符重载(四)
来源:互联网 发布:自学linux书籍推荐 编辑:程序博客网 时间:2024/04/30 05:01
类型转换运算符
//Integer.h#ifndef _INTEGER_H_#define _INTEGER_H_class Integer{public: Integer(int n); ~Integer(); Integer& operator++(); //friend Integer& operator++(Integer& i); Integer operator++(int n); //friend Integer operator++(Integer& i, int n); operator int(); void Display() const;private: int n_;};#endif // _INTEGER_H_//Integer.cpp#include "Integer.h"#include <iostream>using namespace std;Integer::Integer(int n) : n_(n){}Integer::~Integer(){}Integer& Integer::operator ++(){ //cout<<"Integer& Integer::operator ++()"<<endl; ++n_; return *this;}//Integer& operator++(Integer& i)//{// //cout<<"Integer& operator++(Integer& i)"<<endl;// ++i.n_;// return i;//}Integer Integer::operator++(int n){ //cout<<"Integer& Integer::operator ++()"<<endl; //n_++; Integer tmp(n_); n_++; return tmp;}//Integer operator++(Integer& i, int n)//{// Integer tmp(i.n_);// i.n_++;// return tmp;//}Integer::operator int(){ return n_;}void Integer::Display() const{ cout<<n_<<endl;}//main.cpp#include "Integer.h"#include <iostream>using namespace std;int add(int a, int b){ return a + b;}int main(void){ Integer n(100); n = 200; n.Display(); int sum = add(n, 100); cout<<sum<<endl; //int x = n; //int y = static_cast<int>(n); return 0;}
输出:
200
300
->运算符
#include <iostream>using namespace std;class DBHelper{public: DBHelper() { cout<<"DB ..."<<endl; } ~DBHelper() { cout<<"~DB ..."<<endl; } void Open() { cout<<"Open ..."<<endl; } void Close() { cout<<"Close ..."<<endl; } void Query() { cout<<"Query ..."<<endl; }};class DB{public: DB() { db_ = new DBHelper; } ~DB() { delete db_; } DBHelper* operator->() { return db_; }private: DBHelper* db_;};int main(void){ DB db; db->Open();//重载指针后可以利用对象访问函数,可以达到对内存更加灵活的管理 db->Query(); db->Close(); return 0;}
0 0
- 25 运算符重载(四)
- C++运算符重载(四)
- 运算符重载(四)带友元
- 四、C++ 运算符重载
- C++——运算符重载(四)
- 从零开始学C++之运算符重载(四):类型转换运算符、*运算符重载、->运算符重载、operator new 和 operator delete
- 从零开始学C++之运算符重载(四):类型转换运算符、*运算符重载、->运算符重载、operator new 和 operator delete .
- 从零开始学C++之运算符重载(四):类型转换运算符、*运算符重载、->运算符重载、operator new 和 operator delete
- 四、C++ 赋值运算符重载
- 运算符重载(++ --)
- 运算符(<<, >>)重载
- ()运算符重载
- 高精度运算(运算符重载)
- C++重载运算符(一)如何重载运算符
- 运算符重载(2)
- 运算符重载(c++)
- 运算符重载(一)
- 运算符重载之(),+
- android--显式跳转和隐式跳转的区别用法
- UIButton常用属性总结
- 数据库增量备份和差异备份的区别
- Qt示例总结
- 高精度 大整数 计算 模板优化方向
- 25 运算符重载(四)
- css伪类
- Linux文本处理工具集锦
- (转载)哈夫曼编码的实现
- CGI和Servlet
- ReadWriteLock和ReetrantLock的区别
- 推荐系统(1)--splitting approaches for context-aware recommendation
- 关于javascript中的return
- 使用hive查询把访问网络流量会话化