c++ - 如何访问不同类中的属性
问题描述
我正在做一个只需要打印变量值的程序,我认为第一类正在工作,'m_valor' 像我想要的那样打印,但第二类应该打印'm_valor + m_valorAdicional',但它是只打印 'm_valorAdicional' 的值:
#ifndef INGRESSO_H
#define INGRESSO_H
#include <iostream>
using namespace std;
class Ingresso
{
protected:
float m_valor;
public:
Ingresso(): m_valor(0){};
Ingresso(float valor): m_valor(valor){};
~Ingresso(){};
float getValor() const {return m_valor; };
};
class IngressoVip : public Ingresso
{
private:
float m_valorAdicional;
public:
IngressoVip(): m_valorAdicional(0){};
IngressoVip(float valor): m_valorAdicional(valor){};
~IngressoVip(){};
float getValor(){return m_valorAdicional +=m_valor;};
};
#endif
主.cpp:
#include "Ingresso.hpp"
int main()
{
Ingresso a(10);
IngressoVip b(5);
out<<"valor Ingresso: "<<a.getValor()<<endl;
cout<<"valor IngressoVip: "<<b.getValor()<<endl;
return 0;
}
我认为这应该很容易,但我只是不知道我必须做什么才能像我想要的那样工作。
解决方案
你应该使用+
,而不是+=
。+=
此行中的内容是什么:
return m_valorAdicional +=m_valor;
是否将 的值相加m_valor
,改变的值m_valorAdicional
,然后返回这个新值。如果您不想更改变量的值,请使用.m_valorAdicional
+
推荐阅读
- kubernetes - 工作节点之间的 Kubernetes 卷复制
- javascript - React jsPdf html2canvas 一些错误
- tradingview-api - TradingView 的图书馆是否收集用户数据?
- javascript - 当前请求不是角度的多部分请求
- java - 带有Windows路径的jar中的属性文件
- javascript - 为政府网站制作通知应用程序
- visual-studio-code - VSCode - 自动从文本空间创建列/缩进
- javascript - 使用过滤器选项从 axios 获取列表 - 未定义
- python - 使用 OuterRef 和 Sum 注释子查询的查询集
- ios - canOpenURL:不使用 LSApplicationQueriesSchemes