首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >跨多个类的Setters和getter?CPP

跨多个类的Setters和getter?CPP
EN

Stack Overflow用户
提问于 2020-05-02 20:13:00
回答 1查看 93关注 0票数 0

我在做作业时遇到了一些麻烦,试图弄清楚如何在派生类中使用基类中的setter函数。我不确定我对C++的理解是否正确,但希望我的代码能更好地解释它!

代码语言:javascript
运行
复制
class account{
private:
    double balance;

protected:
    int numwithdraws = 0;

public:
    void Setbalance(int bal)
    {
        balance = bal + balance;
    }
    int Getbalance()
    {
        return balance;
    }
};

class checking : public account {
public:
    WriteCheck(int checknum,double amount)
    {
        cout<<"Check amount?"<<endl;
        cin>>amount;
        Setbalance(amount);
        checknum++;
    }
};

在我的主要功能中,有一个选项可以选择退出,这通常意味着我的余额会下降,所以我必须想出如何在我的设定余额中做这个负数,但是

代码语言:javascript
运行
复制
    checking obj2;
    obj2.WriteCheck(0,0);
    cout<<"New Balance = "<<obj1.Getbalance()<<endl;

为了缩小问题所在,我提取了大量代码,但如果我为代码所写的内容令人困惑,我将尝试用语言更好地解释它。

我的基类帐户中有一个设置平衡和一个Getbalance。在派生类检查中,我尝试使用派生类函数WriteCheck中的基类中的设置平衡函数来更改我的帐户基类中的私有变量balance的数量。

问题是,当我在派生类函数中使用Setbalance并在main中调用Getbalance时,它仍然是0,并且不改变变量余额中的金额。

我在阅读自己的解释时感到困惑,所以我理解我是否很难理解我想问的问题。如果是这样的话,请让我知道,以便我可以尝试进一步解释!

EN

回答 1

Stack Overflow用户

发布于 2020-05-02 20:56:47

您的目标是正确的(从派生类中调用基类中的函数)。派生类通常具有基类所具有的函数,因此调用

代码语言:javascript
运行
复制
checking obj2;
obj2.Getbalance()

完全没问题。我对您的代码做了一些语法更改,以便它能够运行。我所做的唯一主要更改是将balance设置为0,这样就不会有任何未定义的行为。

代码语言:javascript
运行
复制
#include <iostream>
using namespace std;


class account {

private:
    double balance = 0;

protected:
    int numwithdraws = 0;

public:
    void Setbalance(int bal)
    {
        balance = bal + balance;
    }
    int Getbalance()
    {
        return balance;
    }
};

class checking : public account
{
public:

    void WriteCheck(int checknum, double amount)
    {
        cout << "Check amount?" << endl;
        cin >> amount;
        Setbalance(amount);
        checknum++;
    }
};

int main()
{
    checking obj2;
    cout << "New Balance = " << obj2.Getbalance() << endl;
    return 0;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61565675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档