询问一个关于类的问题。

Fragile 2004-04-30 08:47:01
如果我要定义一个类比如说class fix
这个类有2个参数,整数位位数和小数位位数
假设整数位是6,小数位是4,定义好这个类后
要实现功能,把多余的小数位去除,比如我设定的小数位是4位,而输入的是5位,就把最后一位去除。至于怎么实现这个先不谈,我想问的是定义好类后应用这个类时候的问题。
我看到书上应用类的时候都是这样表示的:
fix a(6,4,10.12345);
也就是6位整数,4位小数,输入的数是10.12345

现在我的问题就是我能不能这样表示:
fix(6,4) a;
a=10.12345;
如果能的话应该怎么实现?

菜鸟一个,可能问题都说的不大清楚,还望见谅。
...全文
22 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenqing1128 2004-04-30
  • 打赏
  • 举报
回复
就是一个运算符重载的问题,同意楼上几位的观点。
runall 2004-04-30
  • 打赏
  • 举报
回复
cngdzhang()
有个小错误
int l,r,val;
改为
int l,r;
double val;
angelo23 2004-04-30
  • 打赏
  • 举报
回复
class fix {
private:
int m, n;
double val;
public:
fix(int a, int b): m(a), n(b){ }
fix& operator= (double vd) {
val = vd;
for(int i = 0; i < n; i++)
val *= 10;
val = int(val);
for(int i = 0; i < n; i++)
val /= 10;
return *this;
}
//other functions
};
cngdzhang 2004-04-30
  • 打赏
  • 举报
回复
class fix
{
int l,r,val;
public:
fix(int z,int x,double v=0.0); //最后一个参数有默认值
operator =(double val); //重载赋值运算符
};

fix::fix(int z,int x,double v=0.0)
{
l=z;
r=x;
val=v;

}

fix::operator =(double val)
{
this->val=val;
}
cngdzhang 2004-04-30
  • 打赏
  • 举报
回复

fix(6,4) a;不可以
fix(6,4) a; 可以

class fix
{
int l,r,val;
public:
fix(int z,int x,double v=0.0); //最后一个参数有默认值
operater =(double val); //重载赋值运算符
};

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧