重载运算符operator int() const是什么意思?

abcmankind 2004-12-16 11:16:04
定义了一个类class1:

class class1
{
public:
class1();
virtual ~class1();

operator int() const
{
return i;
}

private:
int i;

};
重载运算符operator int() const是什么意思?
怎么去使用这个重载的运算符?
...全文
1411 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
pacman2000 2004-12-16
  • 打赏
  • 举报
回复
是这个类到int类型的转换函数。
liweiswin 2004-12-16
  • 打赏
  • 举报
回复
#include<iostream>
using namespace std;

class class1
{
public:
class1();
class1(int n)
{
i=n;
}


operator int() const
{
return i;
}

private:
int i;

};

int main()
{
class1 test(8);
int temp;

temp=int(test); //用重载的int()将class1类型转换成int类型并赋值给temp

cout<<temp<<endl;
getchar();

return 0;
}

输出结果是8
goodluckyxl 2004-12-16
  • 打赏
  • 举报
回复
operator int() const
如同系统的强制转化 const修饰表示在这个函数中不能修改任何不被mutable修饰的成员变量
carylin 2004-12-16
  • 打赏
  • 举报
回复
数据转化函数。有了个函数就可以象内建数据类型一样强制/自动转换成int型了。可以这样使用:
class1 c;
//...
int i = (int)c; // ok!
BluntBlade 2004-12-16
  • 打赏
  • 举报
回复
类型转换运算符

class1 c;

int b = (int)c; // 在这里调用被重载的运算符
greenteanet 2004-12-16
  • 打赏
  • 举报
回复
从这个类到int的转换函数.
oyljerry 2004-12-16
  • 打赏
  • 举报
回复
类到int型的转换
Breeze 2004-12-16
  • 打赏
  • 举报
回复
这个是显示的从类到int的转换函数,还有一个隐式的转换函数,这就是类的构造函数

比如
class myclass
{
public:
myclass(int temp);

private:
int _data;
}

myclass(int temp)就定义了一个从myclass到int的转换

65,201

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧