Lee*_*Lee 7 c++ types qualifiers
作为我的计算机软件开发学位的一部分,我的一个实验室包括创建计算器类模板和分数类.
问题在于我的分数类.我的任务是重载加号运算符以允许将两个分数加在一起.
Fraction.cpp:
#include "Fraction.h"
const Fraction Fraction::operator+ (const Fraction &rhs) const
{
return Fraction(_num * rhs.GetDen() + (rhs.GetNum() * _den), _den * rhs.GetDen());
}
Run Code Online (Sandbox Code Playgroud)
Fraction.h
#pragma once
class Fraction
{
public:
Fraction(const int &num, const int &den) : _num(num), _den(den) {}
~Fraction(void) {}
const int GetNum(void) { return _num; }
const int GetDen(void) { return _den; }
const Fraction operator+ (const Fraction &rhs) const;
private:
const int _num, _den;
};
Run Code Online (Sandbox Code Playgroud)
Visual Studio抱怨我的分数访问器不能"将此指针从const分数转换为分数&".我完全不知所措.
Gun*_*iez 12
您还需要将访问者限定为const:
int GetNum(void) const { return _num; }
Run Code Online (Sandbox Code Playgroud)
顺便说一句,将返回类型限定为const int并不是真的有意义,无论如何它都将是一个int.您的编译器应发出警告.
| 归档时间: |
|
| 查看次数: |
4933 次 |
| 最近记录: |