我做了个压位高精的模板类,模板参数是压的位数,写了个模板构造函数但是访问不了私有变量(会报错),有没有大佬能给我讲讲 这是声明:(无关和成功实现的我就不贴了)
template<unshort base>
class integer{
public:
integer();
integer(const string& str);
template<unshort obase>
integer(const integer<obase>& o);
integer operator = (const string& str);
template<unshort obase>
integer operator = (const integer<obase>& o);
private:
unshort each;
unsg power;
vector<unsg>num;
bool minus;
int err;
};
这是实现代码:
template<unshort base> template<unshort obase>
integer<base> integer<base>:: operator = (const integer<obase>& o){
minus=0;
err=0;
if(o.err==1){
*this=0;
err=1;
return *this;
}
if(base==obase){
minus=o.minus;
num=o.num;
}else{
*this=o.str();
}
return *this;
}
template<unshort base> template<unshort obase>
integer<base>::integer(const integer<obase>& o){
each=base;
power=pow(10,each);
*this=o;
}
然后编译告诉我integer o的 err minus num都是private,不能访问,但是明明都是同一个模板类。