标题:编译错误,大家帮我看看。多谢啦!
只看楼主
ybjkl
Rank: 2
等 级:论坛游民
帖 子:86
专家分:85
注 册:2011-6-21
结帖率:95.65%
已结贴  问题点数:20 回复次数:6 
编译错误,大家帮我看看。多谢啦!
1.
 int GetindividualEmpNo();//函数声明

employee::GetindividualEmpNo() //函数实现
{
    return GetindividualEmpNo;
}
编译的时候错误提示:'return' : cannot convert from 'int (__thiscall employee::*)(void)' to 'int'  这个有什么问题吗?

2. 定义CommRate为float 但是给float赋值
CommRate=0.05 编译提示 warning C4305: '=' : truncation from 'const double' to 'float' 这个又是什么问题啊?


搜索更多相关主题的帖子: 函数 double employee convert warning 
2012-03-06 22:07
榴紫丫
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:33
专家分:135
注 册:2011-11-3
得分:10 
1.employee::GetindividualEmpNo() 函数返回值类型是啥啊空的? GetindividualEmpNo这个返回值是什么类型?
2.从'const double' 截取到 'float'    转换类型会精度丢失,CommRate=0.05 类型不匹配,强制类型转换行不?   CommRate=float(0.04);
2012-03-06 22:32
非死亡!
Rank: 8Rank: 8
来 自:四川
等 级:蝙蝠侠
帖 子:179
专家分:760
注 册:2011-10-31
得分:10 
返回的是GetindividualEmpNo; 是变量吗? 是函数吗? 你自己想想你到底要返回什么? 你就写了这么多.我也没法看出什么来.返回时,编译器将GetindividualEmpNo当成变量了;
const double' to 'float'  顾名思义0.05是常量双精度类型的    你定义的单精度的   于是警告你了.可以忽略的.

能力 技巧
2012-03-06 22:33
ybjkl
Rank: 2
等 级:论坛游民
帖 子:86
专家分:85
注 册:2011-6-21
得分:0 
GetindividualEmpNo() 返回类型为int啊,声明的就是int GetindividualEmpNo();
强制类型转换现在试试
2012-03-06 22:38
ybjkl
Rank: 2
等 级:论坛游民
帖 子:86
专家分:85
注 册:2011-6-21
得分:0 
GetindividualEmpNo是一个成员变量,那多贴些代码出来吧,整个太长了。
class employee
{
protected:
    char name[20];      //姓名
    int individualEmpNo; // 个人编号
    int  grade; //级别
    float accumPay;
    static int employeeNo;  //本公司职员编号目前最大值。
public:
    employee();         // 构造函数
    ~employee();        //析构函数
    void pay();         //计算月薪函数
    void promote(int);  //升级函数
    void SetName(char *);     //设置姓名函数
    char* GetName();      //取姓名函数
    int GetindividualEmpNo(); //提取编号函数
    int Getgrade();           //提取级别函数
    float GetaccumPay();    //提取月薪函数
};

//函数实现
int employee::GetindividualEmpNo()   
{
    return GetindividualEmpNo;
}

2012-03-06 22:43
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
得分:0 
呵呵,这个帖子倒是速战速决。

那个 double 转 float。一般建议没有特殊需要就不要用 float,精度和运算速度都比不上 double。
所以绝大多数情况下,double 都能纯替 float。
2012-03-06 23:25
bccn250
Rank: 5Rank: 5
等 级:职业侠客
帖 子:154
专家分:379
注 册:2010-5-25
得分:0 
应该是函数指针之类的吧,

int GetindividualEmpNo();    //一个返回int型的函数

int employee::GetindividualEmpNo()   
{
    return GetindividualEmpNo;    //返回GetindividualEmpNo函数的指针
}


[ 本帖最后由 bccn250 于 2012-3-7 20:25 编辑 ]
2012-03-07 20:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-362406-1-1.html




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

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