求助一个关于模板的问题
  • 板块学术版
  • 楼主botao0508
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/5/16 12:06
  • 上次更新2023/10/28 01:19:17
查看原帖
求助一个关于模板的问题
640389
botao0508楼主2022/5/16 12:06

我做了个压位高精的模板类,模板参数是压的位数,写了个模板构造函数但是访问不了私有变量(会报错),有没有大佬能给我讲讲 这是声明:(无关和成功实现的我就不贴了)

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,不能访问,但是明明都是同一个模板类。

2022/5/16 12:06
加载中...