overloaded member function是啥意思。

daemonhunter0 2010-04-04 03:34:00
我建了两个类一个Date(int,int,int)在"Date.h"文件中
一个Employee(string,char,int,int,class Date,class Date)在"Employee"文件中
Employee类中参数有Date类。
"Date.h"头文件如下:
#ifndef _DATA_H_
#define _DATA_H_
。。。
。。。

#endif
Employee函数声明如下:
#include <iostream>
using namespace std;
#include<string>
using std::string;
#include"Date.h"
class Employee
{
public:
Employee(string,char,int,int,class Date,class Date);
。。。。。
。。。。。
}

Employee类的函数如下
#include "stdafx.h"
#include "Employee.h"
Employee::Employee(string name,char sex,int age,int wage,Date Date1(int year,int mounth,int day),Date Date2(int year,int mounth,int day))//这里出错
{
...
}
void Employee::setEmployeeDate(Date Date2(int year,int mounth,int day))//这里出错
{
....
}
编译时出错说 error C2511: 'Employee::Employee' : overloaded member function 'void (class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,char,int,int,class Date [/color[color=#FF0000]](__cdecl *)(int,int,,int))' not found in 'Employee'是啥意思。咋修改?
请高手指导下谢了。。
...全文
1128 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
e_xyl 2010-04-04
  • 打赏
  • 举报
回复
oh mygod!!

void Employee::setEmployeeDate(Date Date2(int year,int mounth,int day))
{
Date2.setDateyear(year);
Date2.setDatemounth(mounth);
Date2.setDateday(day);
}
这是什么意思?你要设置雇员的日期吗?如果是你为什么要修改传入参数的日期?你的Employee对象中有Date成员吗?你是要设置雇员类中的Date成员吗?

你能不能详细的描述一下你的意图?
daemonhunter0 2010-04-04
  • 打赏
  • 举报
回复
咋改呀。我也初学,老师没讲类之间的调用
晨星 2010-04-04
  • 打赏
  • 举报
回复
C++不必像C结构体必需加上struct那样来使用class类型。
arong1234 2010-04-04
  • 打赏
  • 举报
回复
知道了
Employee::Employee(string name,char sex,int age,int wage,Date Date1(int year,int mounth,int day),Date Date2(int year,int mounth,int day))
应该是

Employee::Employee(string name,char sex,int age,int wage,Date Date1 ,Date Date2 )

这里又不是构造date对象,要你提供参数列表干嘛?
arong1234 2010-04-04
  • 打赏
  • 举报
回复
你出错的地方明显不符合C++语法么?这个代码啥意思?
daemonhunter0 2010-04-04
  • 打赏
  • 举报
回复
void Employee::setEmployeeDate(Date Date2(int year,int mounth,int day))//这里出错

void Employee::setEmployeeDate(Date Date2) //这样写
但这个函数的参数在函数中要用,这样改,编译时说year没定义。
这是那个函数
void Employee::setEmployeeDate(Date Date2(int year,int mounth,int day))
{
Date2.setDateyear(year);
Date2.setDatemounth(mounth);
Date2.setDateday(day);
}
FingerStyle 2010-04-04
  • 打赏
  • 举报
回复
Employee::Employee(string name,char sex,int age,int wage,Date Date1(int year,int mounth,int day),Date Date2(int year,int mounth,int day))//这里出错

Employee::Employee(string name,char sex,int age,int wage,Date Date1,Date Date2) //这样写


void Employee::setEmployeeDate(Date Date2(int year,int mounth,int day))//这里出错

void Employee::setEmployeeDate(Date Date2) //这样写

65,206

社区成员

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

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