所以我遇到了问题,我不知道如何解释,所以我会告诉你我的代码。
这是老师写的主要内容:
#include <iostream>
#include "distance.h"
using std::cout;
using std::endl;
// Program starts here
int main() {
// Test the constructors
Distance one, two(5), three(5, 'F');
// Test the Accessor
cout << "one in meters: " << one.meters() << endl;
cout << "two in meters: " << two.meters() << endl;
cout << "three in meters: " << three.meters() << endl;
// Use the Mutator
one.set_meters(8);
// Use GetDistance
cout << "one in fathoms: " << one.GetDistance('A') << endl;
// Use SetDistance
one.SetDistance(50, 'C');
// Use Output
one.Output(); // 'Output' is ambiguous ' Candidates are: void Output() void Output(char)
one.Output('C');
one.Output('M');
// This ends our program
return 0;
}
这是我的标题:
#ifndef DISTANCE_H_
#define DISTANCE_H_
#include <iostream>
using std::cout;
using std::endl;
using std::cin;
class Distance {
public:
Distance();
Distance(double meters);
Distance(double meters, char unit);
void SetDistance(double, char);
double GetDistance(char);
double meters();
void Output();
void Output(char);
void set_meters();
void set_meters(double);
void set_meters(double, char);
private:
double meters_;
};
#endif /* DISTANCE_H_ */
我的实现有:
void Distance::Output() {
Output('M');
}
void Distance::Output(char unit) {
cout << 4.5;
}
我不明白set_meters()是如何正常工作但我的Output()是不明确的。如果没有发送任何值或者发送了一个值来使用它,我想让Output()默认为'M'。对不起,所有的代码,但我不确定什么是重要的,什么是不重要的。如果您需要我的所有实现,我可以添加它。