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条回答 默认 最新

  • HWsir 2022-06-17 06:25
    关注

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

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

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程