C++ 编程 运算符重载

问题描述

C++ 编程 运算符重载

编写一个Customer类,包括账号、密码、姓名、余额(初始为0)。
用两种方法重载运算符“-”,使得两个Customer对象相减,能得到它们余额之差。
请发送到邮箱 liangxiaoqi_c@163.com,谢谢啦

解决方案

参考:http://blog.csdn.net/wangfengwf/article/details/11580653
如果要完整代码,请先采纳本回答。

解决方案二:

 // MyApp1.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>

using namespace std;

class Customer
{
public:
    char account[10];
    char password[10];
    char name[10];
    int balance;
    Customer(int n)
    {
        balance = n;
    }
    Customer operator-(Customer p)
    {
        return Customer(balance - p.balance);
    }
};

int main(int argc, char* argv[])
{
    Customer c1(100);
    Customer c2(10);
    Customer c3 = c1 - c2;
    cout << c3.balance << endl;
}

解决方案三:

另一个方式:

 // MyApp1.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>

using namespace std;

class Customer
{
public:
    char account[10];
    char password[10];
    char name[10];
    int balance;
    Customer(int n)
    {
        balance = n;
    }
};

Customer operator-(Customer p1, Customer p2)
{
    return Customer(p1.balance - p2.balance);
}

int main(int argc, char* argv[])
{
    Customer c1(100);
    Customer c2(10);
    Customer c3 = c1 - c2;
    cout << c3.balance << endl;
}

时间: 2024-09-18 21:44:44

C++ 编程 运算符重载的相关文章

c++-C++ 编程 运算符重载

问题描述 C++ 编程 运算符重载 c++重载编程 编写一个Customer类,包括账号.密码.姓名.余额(初始为0). 用两种方法重载运算符"-",使得两个Customer对象相减,能得到它们余额之差 想要用户自己输入用户余额,用户相减为余额之差 解决方案 C++中运算符重载的几种方法的适用性探讨 方法如下,具体代码还要你自己动手编写,学习不能偷懒的. 解决方案二: class Customer { ... public: Custom operator-(const Custom&

详解C++编程中的单目运算符重载与双目运算符重载_C 语言

C++单目运算符重载 单目运算符只有一个操作数,如!a,-b,&c,*p,还有最常用的++i和--i等.重载单目运算符的方法与重载双目运算符的方法是类似的.但由于单目运算符只有一个操作数,因此运算符重载函数只有一个参数,如果运算符重载函数作为成员函数,则还可省略此参数. 下面以自增运算符"++"为例,介绍单目运算符的重载. [例] 有一个Time类,包含数据成员minute(分)和sec(秒),模拟秒表,每次走一秒,满60秒进一分钟,此时秒又从0开始算.要求输出分和秒的值. #

简介C++编程中的运算符重载_C 语言

所谓重载,就是重新赋予新的含义.函数重载就是对一个已有的函数赋予新的含义,使之实现新功能,因此,一个函数名就可以用来代表不同功能的函数,也就是"一名多用". 运算符也可以重载.实际上,我们已经在不知不觉之中使用了运算符重载.例如,大 家都已习惯于用加法运算符"+"对整数.单精度数和双精度数进行加法运算,如5+8, 5.8 +3.67等,其实计算机对整数.单精度数和双精度数的加法操作过程是很不相同的, 但由于C++已经对运算符"+"进行了重载,所以

C02-程序设计基础提高班(C++)第11周上机任务-运算符重载

第11周:阅读教材第10章(p314-346),掌握用运算符重载解决问题,完成第11周上机任务: (回到C02-程序设计基础提高班(C++)学习安排) [任务1]实现复数类中的运算符重载定义一个复数类重载运算符+.-.*./,使之能用于复数的加减乘除.(1)方案一:请用类的成员函数完成运算符的重载: class Complex { public: Complex(){real=0;imag=0;} Complex(double r,double i){real=r;imag=i;} Comple

C++运算符重载的方法详细解析_C 语言

运算符重载实质上是函数的重载 重载运算符的函数一般格式如下: 函数类型    operator  运算符名称    (形参表列) {对运算符的重载处理} 例如,想将"+"用于Complex(复数)的加法运算,函数的原型可以是这样的: 复制代码 代码如下: Complex operator + (Complex & c1,Complex &c2); 其中,operator是关键字,时候专门用于定义重载运算符的函数的,运算符名称就是C++提供给用户的预定运算符. 注意:函数

第8周-任务2-实现Time类中的运算符重载

[题目]实现Time类中的运算符重载 下面是给出的参考代码 #include <iostream> using namespace std; class CTime { private: unsigned short int hour; // 时 unsigned short int minute; // 分 unsigned short int second; // 秒 public: CTime(int h=0,int m=0,int s=0); void setTime(int h,in

c++-C++ list赋值和类的运算符重载

问题描述 C++ list赋值和类的运算符重载 刚刚发现了个问题,一直卡着我 class CA { public: CA(){} ~CA(){} public: VOID operator = ( CA& msg ) { dwvalue = msg.dwvalue; } private: DWORD dwvalue; }; VOID Fuck1( OUT list& bb ) { list< CA > aa; CA a; CA b; aa.push_back(a); aa.pu

C++学习摘要之七:运算符重载

C++语言中预定义的运算符的操作对象只能是基本数据类型,但是,在实际应用中,对于很多用户自定 义数据类型(如类)也需要类似的功能,这就需要对已有的运算符赋予多种含义,使同一个运算符具有作 用于不同类性的数据导致不同类型的行为,这就是运算符重载.因此,运算符重载的目的是设置C++语言 中的某一运算符,让它们之间并不冲突,C++语言会根据运算符的位置辨别应使用哪一种功能进行运算. 可见,运算符重载的优点是允许改变使用于系统内部的运算符的操作方式,以适应用户新定义类型的类似 运算. 运算符重载的实质是

C++运算符重载赋值运算符

自定义类的赋值运算符重载函数的作用与内置赋值运算符的作用类似,但是要要注意的是,它与拷贝构造函数与析构函数一样,要注意深拷贝浅拷贝的问题,在没有深拷贝浅拷贝的情况下,如果没有指定默认的赋值运算符重载函数,那么系统将会自动提供一个赋值运算符重载函数. 赋值运算符重载函数的定义与其它运算符重载函数的定义是差不多的. 下面我们以实例说明如何使用它,代码如下: //程序作者:管宁//站点:www.cndev-lab.com//所有稿件均有版权,如要转载,请务必著名出处和作者#include <iostr