C++ 重载括号运算符示例
2023-12-14 05:41:54
重载括号运算符的写法是,
? ? 返回值 ?operator() ( 表达式表 )
参数个数不限;
VC6新建一个单文档工程;
添加一个示例类,比较短,直接加到视类h文件的头部;
class A
{
public:
// 重载 括号 () 运算符
int operator()(int a, int b)
{
return a + b;
};
// 正常的函数
int add(int a, int b)
{
return a + b;
};
// 重载 括号 () 运算符
int operator()(int a, int b, int c)
{
return a*b+c;
}
};
?
类A重载了2次括号运算符,一次有2个参数,一次有3个参数;
调用如下;
?
void CKhczView::OnDraw(CDC* pDC)
{
CKhczDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CString str1;
A a;
str1.Format("%d",a(9,10));
pDC->TextOut(20,20, str1);
str1.Format("%d", a.add(9,9));
pDC->TextOut(20,50, str1);
str1.Format("%d", a(2, 50, 9));
pDC->TextOut(20,80, str1);
}
第一次和第三次是调用重载的括号运算符;第二次是调用成员函数;?
?
文章来源:https://blog.csdn.net/bcbobo21cn/article/details/134985850
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!