| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 609 人关注过本帖
标题:请帮我看看为啥赋不了值
只看楼主 加入收藏
gobraves
Rank: 2
等 级:论坛游民
帖 子:46
专家分:16
注 册:2013-8-3
结帖率:88.89%
收藏
已结贴  问题点数:10 回复次数:9 
请帮我看看为啥赋不了值
程序代码:
#include<iostream>
#include<string>
using namespace std;

class Employee
{
public:
    Employee(string nam,string n):name(nam),num(n)
    {
        grade=1;
        wage=0;
    }
protected:
    string name;
    string num;
    int grade;
    double wage;
};

class Technician:virtual public Employee
{
private:
    int hour;
public:
    Technician(string nam,string n,int h):Employee(nam,n)
    {
        hour = h;
        grade = 3;
        wage =100*h;
    }
    void show_T();
    void get_T();
};

void Technician::show_T()
{
    cout<<"name:"<<name<<endl;
    cout<<"num:"<<num<<endl;
    cout<<"grade:"<<grade<<endl;
    cout<<"wage:"<<wage<<endl;
}

void Technician::get_T()
{
    cin>>hour;
}

int main()
{
    Technician t("t","2",100);
    t.get_T();                                  //我在这里对hour赋值为4,但为啥不起作用
    t.show_T();
    return 0;
}


对hour赋值后不起作用,请各位指点下
2014-05-08 22:46
funyh250
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:26
帖 子:290
专家分:1573
注 册:2013-12-25
收藏
得分:0 
你瞧瞧函数的返回值

学习是大事   吃喝拉撒睡是小事   其他的那都不是事
2014-05-08 23:17
gobraves
Rank: 2
等 级:论坛游民
帖 子:46
专家分:16
注 册:2013-8-3
收藏
得分:0 
回复 2 楼 funyh250
这个应该与返回值没关系吧,我是通过成员函数直接对成员变量进行修改
2014-05-09 06:32
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:9 
起作用了呀,为什么说不起作用?
2014-05-09 08:20
gobraves
Rank: 2
等 级:论坛游民
帖 子:46
专家分:16
注 册:2013-8-3
收藏
得分:0 
回复 4 楼 rjsp
举个例子,我输入4,那么hour就会变成4,wage就会变成400,可是输出的hour依然是100,wage依然是10000……
2014-05-09 09:20
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:0 
举个例子,我输入4,那么hour就会变成4wage就会变成400可是输出的hour依然是100,wage依然是10000……
------ 蓝色部分是正确的,你可以输出hour看看
       粉红色部分不知道你这么想的,涉及到hour的语句就三条,int hour;hour = h;cin>>hour;凭什么你改了hour就能让wage变化,太神奇了吧?!
       红色部分在瞎扯蛋,你的代码中根本就没输出过hour,怎么能说『可是输出的hour依然是100』?!
2014-05-09 10:30
jansonying
Rank: 2
等 级:论坛游民
帖 子:11
专家分:17
注 册:2011-5-7
收藏
得分:1 
测试后如下:  输入4 回车   4
                          name: t
                          num : 3
                          grade:3

                          wage: 10000
2014-05-09 13:14
jansonying
Rank: 2
等 级:论坛游民
帖 子:11
专家分:17
注 册:2011-5-7
收藏
得分:0 
回复 5 楼 gobraves
代码里 hour 没看出改变了啊   输入4   输出还是4啊
2014-05-09 13:23
gobraves
Rank: 2
等 级:论坛游民
帖 子:46
专家分:16
注 册:2013-8-3
收藏
得分:0 
回复 6 楼 rjsp
额,我知道了,我的wage=100*h,h的值没改变,我一直当成wage=100*hour了……
2014-05-09 16:19
gobraves
Rank: 2
等 级:论坛游民
帖 子:46
专家分:16
注 册:2013-8-3
收藏
得分:0 
回复 6 楼 rjsp
额,也不是刚说的问题。当时写的时候应该是思路混乱了,把构造函数当成了普通函数在用,希望通过修改hour的值,然后根据构造函数中的wage=100*h,修改wage的值……谢谢你的回答
2014-05-09 16:26
快速回复:请帮我看看为啥赋不了值
数据加载中...
 
   



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

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