注册 登录
编程论坛 C++教室

编译错误,大家帮我看看。多谢啦!

ybjkl 发布于 2012-03-06 22:07, 532 次点击
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' 这个又是什么问题啊?


6 回复
#2
榴紫丫2012-03-06 22:32
1.employee::GetindividualEmpNo() 函数返回值类型是啥啊空的? GetindividualEmpNo这个返回值是什么类型?
2.从'const double' 截取到 'float'    转换类型会精度丢失,CommRate=0.05 类型不匹配,强制类型转换行不?   CommRate=float(0.04);
#3
非死亡!2012-03-06 22:33
返回的是GetindividualEmpNo; 是变量吗? 是函数吗? 你自己想想你到底要返回什么? 你就写了这么多.我也没法看出什么来.返回时,编译器将GetindividualEmpNo当成变量了;
const double' to 'float'  顾名思义0.05是常量双精度类型的    你定义的单精度的   于是警告你了.可以忽略的.
#4
ybjkl2012-03-06 22:38
GetindividualEmpNo() 返回类型为int啊,声明的就是int GetindividualEmpNo();
强制类型转换现在试试
#5
ybjkl2012-03-06 22:43
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;
}

#6
pangding2012-03-06 23:25
呵呵,这个帖子倒是速战速决。

那个 double 转 float。一般建议没有特殊需要就不要用 float,精度和运算速度都比不上 double。
所以绝大多数情况下,double 都能纯替 float。
#7
bccn2502012-03-07 20:21
应该是函数指针之类的吧,

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

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


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