【发布时间】:2014-09-12 12:44:03
【问题描述】:
我正在学习课程,我在练习时偶然发现了这一点。我很困惑为什么我会得到amount 的垃圾输出,为什么会提前显示amount 的正确值也是如此。
我哪里错了?
我已经粘贴了输出。
#include<iostream>
using namespace std;
class Resort{
float charges ;
int days ;
float amount ;
float compute() ;
public:
void getdata();
void disp();
};
void Resort::getdata(){
cout<<"\nCharges : ";
cin>>charges ;
cout<<"\nNo of days : ";
cin>>days ;
}
void Resort::disp(){
cout<<"\nCharges : "<<charges
<<"\nDays : "<<days
<<"\nAmount : "<<compute()<<endl ;
}
float Resort::compute(){
amount = (days*charges) ;
cout<<amount;
}
int main(){
Resort obj ;
obj.getdata();
cout<<"\n\n";
obj.disp();
}
【问题讨论】:
-
打开/提高编译器的警告级别。
-
请编译所有警告和调试信息(例如
g+++ -Wall -g)并学习如何使用调试器 -
我在编译器设置上启用了 -Wall。你说的是那个@BasileStarynkevitch 吗?
-
你也用过调试器吗?
-
我直到现在才使用它,但我正在学习如何做到这一点:)