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

我想用运算符重载函数重载“=”,使它实现不同类的对象间的赋值,怎么编写?谢谢···

Go2009 发布于 2008-10-24 13:13, 1279 次点击
我刚刚学c++,想重载运算符“=”,来实现不同类的对象间的赋值,我自己编写了一个,错误太多,不敢贴出来了。这个应该怎么编写?谢谢···
4 回复
#2
sunkaidong2008-10-24 13:23
你还是贴出来把。。。不知道你说的不同类的对象之间赋值是怎么回事?
#3
xmnathan2008-10-24 15:16
比如字符串的赋值 就重载= 函数内部调用strcpy()来实现咯
对每个需要的类型都进行重载,当用户输入参数时就会自动匹配了
#4
冰烨2008-10-24 17:09
主要是处理有指针的问题,记得new一个就好了
#5
Go20092008-10-24 17:48
#include<iostream>
using namespace std;
class Date;   //对Date类的提前声明
class Time
{
public:
    Time(int m,int s);
    operator=(Time &t1,Date &d1);   //重载运算符“=”的函数,用于Date类和Time类对象间的赋值。
private:
    int minute,sec;
} ;

class Date
{
public:
    Date(int y,int d);
    friend Time::operator=(Time &t1,Date &d1);//声明运算符重载函数为该类的友元函数,可以访问该类的私有成员
private:
    int year,day;
};
Time::Time(int m,int s):minute(m),sec(s){}
Date::Date(int y,int d):year(y),day(d){}
Time::operator=(Time &t1,Date &d1)
{
    t1.m=d1.y;
    t1.s=d1.d;
    return t1;
}

int main()
{
    Time t1;
    Date d1(2,3);
    t1=d1;
    cout<<t1.m<<":"<<t1.s<<endl;
    return 0;
}

这是我一开始编写的程序,我是想把d1(2,3)赋给t1,我看了书后想做个练习,希望大家可以教教我。谢谢···
1