не получается перегрузить оператор ввода.
Выскакивает ошибка:
бинарный ">>": не найден оператор, принимающий левый операнд типа "std::istream" (или приемлемое преобразование отсутствует)
В чем может быть проблема?
class Rational {
public:
Rational() {
numerator = 0;
denominator = 1;
}
Rational(int num, int denom) {
int a = abs(num);
int b = abs(denom);
int nod;
while (a != 0 && b != 0){
if (a > b)
a = a % b;
else
b = b % a;
}
nod = a + b;
if ((denom < 0 && num>0) || (denom < 0 && num < 0)) {
num = -num;
denom = -denom;
}
numerator = num / nod;
denominator = denom / nod;
}
int Numerator() const {
return numerator;
}
int Denominator() const {
return denominator;
}
private:
int numerator, denominator;
};
Определите оператор как друг класса:
class Rational {
public:
Rational() : numerator(0), denominator(1) {}
//...
friend istream& operator >>(istream& stream, Rational& r)
{
char c;
stream >> numerator >> c >> denominator;
return stream;
}
private:
int numerator, denominator;
};
Вы же так хотели кажется?..
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Когда мое приложение стартует, RegisterClassEx иногда возвращает 0, и приложение приходится аварийно завершатьЭто происходит не по тому ли что иногда...
Нужно динамически с помощью переменных и регулярного выражения поменять последнее значение в строкеВ первом случае работает во втором нет
Нужно чтобы в saidbar'е отображать файлы HTML,CSS,JS,PHP, а в контенте содержимое этого файлаКак это сделать?