m0_63133201 2022-06-17 03:48 采纳率: 87%
浏览 41
已结题

想要实现2个结果互换,都是结果没有变。

想要实现2个结果互换,都是结果没有变。

#pragma once
class people
{
public:
    virtual float getCK();//存款
    virtual void setput();//输入    
    virtual void display();//输出
    people();
    ~people();
};

class QFR :public people
{
private:
    float j;
    float h;
public:
    QFR();
    float  getCK();//存款
    void setput();//输入    
    void display();//输出
    ~QFR();
};
class QDD :public people
{
private:
    float j;
    float h;
public:
    QDD();
    float  getCK();//存款
    void setput();//输入    
    void display();//输出
    ~QDD();
};
#include<iostream>
using namespace std;
#include"b.h"
template<typename T>
void Change(T a,T b)
{    
    T c;
    c = a;
    a = b;
    b = c;
}

float people::getCK()
{
    return 0.0;
}
void people::setput()
{
    cout << "NULL" << endl;
}
void people::display()
{
    cout << "NULL" << endl;
}

people::people()
{
    cout << "people构造函数" << endl;
}
people::~people()
{
    cout << "people析构函数" << endl;
}

QFR::QFR()
{
    j = 0.0;
    h = 0.0;
}
void QFR::setput()
{
    cout << "钱夫人基本工资" << endl;
    cin >> j;
    cout << "钱夫人工作时间" << endl;
    cin >> h;
}
float QFR::getCK()
{
    return  j + h * 60;
}

void QFR::display()
{

    cout << "钱夫人基本工资:" << j << endl;
    cout << "钱夫人工作时间:" << h << endl;
    cout << "钱夫人存款:" << getCK() << endl;

}
QFR::~QFR()
{
    cout << "钱夫人析构函数" << endl;
}
        QDD::QDD()
        {
            j = 0.0;
            h = 0.0;
        }
        void QDD::setput()
        {
            cout << "钱多多基本工资" << endl;
            cin >> j;
            cout << "钱多多工作时间" << endl;
            cin >> h;
        }
        float QDD::getCK()
        {
            return  j + h * 30;
        }

        void QDD::display()
        {

            cout << "钱多多基本工资:" << j << endl;
            cout << "钱多多工作时间:" << h << endl;
            cout << "钱多多存款:" << getCK() << endl;

        }

        QDD::~QDD()
        {
            cout << "钱多多析构函数" << endl;
        }
int main()
{
    QFR d;
    d.setput();
    d.getCK();
    d.display();
    cout << "------------------" << endl;
    QDD f;
    f.setput();
    f.getCK();
    f.display();
    cout << "------------------" << endl;
    Change(f.getCK(), d.getCK());
    cout << "钱多多存款:" << f.getCK() << endl;
    cout << "钱夫人存款:" << d.getCK() << endl;
}


  • 写回答

2条回答 默认 最新

  • 惜日短 2022-06-17 06:25
    关注

    你这是值传递,而且要交换两个对象的工资,你计算工资用的成员函数,成员变量没变,计算结果当然也不会改变

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月27日
  • 已采纳回答 6月19日
  • 修改了问题 6月17日
  • 创建了问题 6月17日

悬赏问题

  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计
  • ¥20 用keil,写代码解决两个问题,用库函数
  • ¥50 ID中开关量采样信号通道、以及程序流程的设计
  • ¥15 U-Mamba/nnunetv2固定随机数种子
  • ¥15 vba使用jmail发送邮件正文里面怎么加图片
  • ¥15 vb6.0如何向数据库中添加自动生成的字段数据。