知命126 2023-03-21 19:07 采纳率: 40%
浏览 13

继承中派生类成员函数出现的问题

先看代码

#include<iostream>
using namespace std;
class Employee
{
private:
    string name;
    string number;
    double basicSalary;

public:
    Employee()
    {
        name = "name";
        number = 1234;
        basicSalary = 3000;
    }
    void input()
    {
        cout << "Name:";
        cin >> name;
        cout << "Number:";
        cin >> number;
        cout << "BasicSalary:";
        cin >> basicSalary;
    }
    double pay()
    {
        return basicSalary;
    }
    void print()
    {
        cout << "Name:" << name << '\t' << "Number:" << number << '\t' << "BasicSalary:" << basicSalary;
        cout << '\t' << "Sum_Salary:" << pay() << '\t';
    }
};

class Salesman :public Employee
{
private:
    double sales;
    double commrate;

public:
    Salesman() :Employee()
    {
        sales = 3241;
        commrate = 2315;
    }
    void input()
    {
        Employee::input();
        cout << "Sales:";
        cin >> sales;
        cout << "Commrate:";
        cin >> commrate;
    }
    double pay()
    {
        return (Employee::pay() + sales * commrate);
    }
    void print()
    {
        Employee::print();
        cout << "Sales:" << sales << '\t' << "Commrate:" << commrate << '\t';
    }
};

class Salesmanager :public Salesman
{
private:
    double jobSalary;

public:
    Salesmanager() :Salesman()
    {
        jobSalary = 2000;
    }
    void input()
    {
        Salesman::input();
        cout << "JobSalary:";
        cin >> jobSalary;
        cout << endl;
    }
    double pay()
    {
        return (Salesman::pay() + jobSalary);
    }
    void print()
    {
        Salesman::print();
        cout << "JobSalary:" << jobSalary << endl;
    }
};

int main()
{
    cout << "基本员工" << endl;
    Employee emp1;
    emp1.input();
    emp1.print();
    cout << endl;
    cout << "销售员" << endl;
    Salesman emp2;
    emp2.input();
    emp2.print();
    cout << "销售经理" << endl;
    Salesmanager emp3;
    emp3.input();
    emp3.print();
}

img

问题:

为什么我输出的Sum_Salary一直等于basicSalary,而不是我派生类成员函数 pay中的返回值
是我的继承中出现了什么问题吗

  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2023-03-21 20:01
    关注

    你到底觉得哪个输出不对啊,销售员还是销售经理?

    评论

报告相同问题?

问题事件

  • 创建了问题 3月21日

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀