标签:优雅 直接 turn bsp 下标 不能 style 中括号 无法
我碰到这样一种情况:一个函数,它的参数是const Bigint &a,同时我重载了Bigint的下标访问,就是[]这个符号。中括号的重载我是这样写的:
1 int &operator [](int x){ return a[x]; }
,a[x]是Bigint的成员a的一个元素。那么问题来了,有的Bigint带const,有的不带,访问不带const的Bigint对象没问题。但是访问带const的就会出错,因为const int&不能转换成int&。。
我想:把那个函数的int改成const int试试看,结果发现我的原意是要改变不带const的BIgint的值,结果现在改不了,因为c++的逻辑是:如果你有可能搞事情,就直接禁止你搞事情。而函数又不能有同类型,非const和const的重载,所以这个问题根本无法解决。
据张子苏大佬说,好像可以用c++11的一个什么reference解决,但是noip不能用c++11呀。。所以只能不优雅了。。
标签:优雅 直接 turn bsp 下标 不能 style 中括号 无法
原文地址:http://www.cnblogs.com/MyNameIsPc/p/7570131.html