| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 400 人关注过本帖
标题:对象初始化以后就不能再进行赋值了吗?
只看楼主 加入收藏
小糊涂神c30
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:198
专家分:809
注 册:2012-4-25
结帖率:100%
收藏
已结贴  问题点数:50 回复次数:3 
对象初始化以后就不能再进行赋值了吗?
程序代码:
#include<iostream.h>
class date
{
private:
    int a;
    int b;
public:
    date(int x,int y);
    int decide();
    void sum();
    void print();
};
date::date(int x,int y)
{
    a=x;
    b=y;
}
int date::decide()
{
    if(a>b)
        return 1;
    else
        return 0;
}
void date::print()
{
    cout<<"a="<<a<<" b="<<b<<endl;
}
void main()
{
    int x,y;
    cout<<"输入x,y的值:";
    cin>>x>>y;
    date A(x,y);
    while(1)
    {
        if(A.decide())
        {
            A.print();
            break;
        }
        else
        {
            cout<<"输入有误,重新输入:";
            cin>>x>>y;
            date A(x,y);
        }
    }
}
我的思想是这样的,输入两个数,判断x是不是大于y,如果是,输出x,y的值,否则重新输入!问题是红色部分重新输入x大于y的值之后,为什么不能把原来的值覆盖掉!请路过的帮忙看一下。
搜索更多相关主题的帖子: decide 
2012-05-27 09:59
小糊涂神c30
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:198
专家分:809
注 册:2012-4-25
收藏
得分:0 
不好意思,颜色没有标记上,总之就是第一次输入的如果为x<y的值,后面无论怎么输入,都改变不了原来的值!
2012-05-27 10:02
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:50 
cout<<"输入有误,重新输入:";
 cin>>x>>y;
 date B(x, y);
 A = B;

或是你写一个设置a,b的函数。
你的第二个date A(x,y);是一个局部对象,离开else作用范围就会消毁的。

我们都在路上。。。。。
2012-05-27 10:29
小糊涂神c30
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:198
专家分:809
注 册:2012-4-25
收藏
得分:0 
回复 3楼 hellovfp
太感谢了,困惑了我两天的问题解决了!
2012-05-27 11:04
快速回复:对象初始化以后就不能再进行赋值了吗?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021757 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved