首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

定义种的后缀自增操作符的疑问

2013-01-21 
定义类的后缀自增操作符的疑问本帖最后由 wsfxzxb 于 2012-12-25 12:54:19 编辑// 定义后缀自增操作符Chec

定义类的后缀自增操作符的疑问
本帖最后由 wsfxzxb 于 2012-12-25 12:54:19 编辑


// 定义后缀自增操作符
CheckedPtr CheckedPtr::operator++(int) // 这个int形参只是为了与前缀操作符区别,该形参并不使用
{
     // 这儿不需要检查,调用前缀增量(前面已定义)将做检查
     CheckedPtr ret(*this);  // 保存当前值
     ++*this;                // 前移一个元素并检查
     return ret;             // 返回保存的旧值
}


现在有一个问题:这样定义岂不是在使用后缀自增时要给一个int 参数,否则与operator++(int)的声明不匹配呀。关于此点我特意试了一个例子,发现不能运行:

#include<iostream>
using namespace std;

void print(int)
{
    cout<<"Hello,world!"<<endl;
}

int main(void)
{
    print();

    system("pause");
    return 0;
}

[解决办法]
使用时直接用就行,不用加int参数,这个int参数是给编译器区分前后缀运算符用的,编译器自己就处理掉了

热点排行