Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ввод неопределенного количества символов В программе нужно реализовать возможность ввода символов, но не известно сколько раз надо это сделать. После идет обработка того, что мы ввели. ввод симолов заканчивается при нажатии например "Z". Как-то делал, но не помню как.... https://www.cyberforum.ru/ cpp-beginners/ thread153212.html C++ Есть ли в классе строк или в алгоритмах разбиение строку на лексемы?
Собственно сабж, как говорится. Хотел переписать программу, которую делал с Си строками и массивом Си строк. Сделана она была не совсем правильно, ибо там логичнее было использовать двумерный массив, но все же. Вот переписал с использованием string. Только долго пришлось маяться. Искал какую-нибудь функцию, чтобы не переводить в Си строку для разбиения на слова. Есть ли такие стандартные функции...
C++ Найти ошибку в тексте Добрых временных суток.Подсобите пожалуйста найти ошибку в тексте. Пример звучит так: Имеется следующее объявление класса: class Move { private: double x; double y; public: https://www.cyberforum.ru/ cpp-beginners/ thread153168.html C++ Как перерисовать всю клиентскую область? https://www.cyberforum.ru/ cpp-beginners/ thread153157.html
Всем доброго времени суток. Подскажите пожалуйста, как заставить свое окно перерисовываться полностью в момент его неактивности? Например, когда его частично закрыть другим окном, после чего открыть - перерисовывается та закрытая часть но не вся клиентская область. Как перерисовать всю клиентскую область?
C++ типовые алгоритмы сортировки
типовые алгоритмы сортировки как они выглядят ?
C++ Помогите реализовать шифр цезаря https://www.cyberforum.ru/ cpp-beginners/ thread153119.html
Помогите написать графическую программу, которая шифрует слова шифром Цезаря.Шифр Цезаря — один из древнейших шифров. При шифровании каждый символ заменяется другим, отстоящим от него в алфавите на фиксированное число позиций.
C++ вопрос про глобальное пространство имен #include <iostream> namespace { int a = 1; } int main() { using std::cout; int a = 5; https://www.cyberforum.ru/ cpp-beginners/ thread153104.html Написать функцию, которая определяет, содержит ли число в своей десятичной записи нули C++
Написать функцию, которая определяет, содержит ли число в своей десятичной записи нули
C++ а разве наследование такая уж важная возможность? https://www.cyberforum.ru/ cpp-beginners/ thread153059.html
а разве наследование такая уж важная возможность?
C++ Считывание всего файла Люди подскажите плиз как можно считать весь файл с текстом в массив? https://www.cyberforum.ru/ cpp-beginners/ thread153050.html
C++ Потоки.
Можете сказать что такое потоки и привести примеры на C++. P.S не надо давать ссылку на википедию.
C++ Старший бит https://www.cyberforum.ru/ cpp-beginners/ thread152997.html
Допустим число 4 представляю в двоичной системе счисления получается 0100. В етом двоичном числе старший бит ет 3 бит?
2 / 2 / 0
Регистрация: 29.12.2009
Сообщений: 167
0

Оператор присваивания - C++ - Ответ 853135

12.07.2010, 12:29. Показов 1579. Ответов 9
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Почему в этом случае вызывается оператор присваивания
Код
        Fraction f4;
        f4 = f1+f2+f3;
а в другом не вызывается:
Код
Fraction f4 = f1+f2+f3;
Вот весь код:
Код
#include <stdafx.h>
#include <conio.h>
using namespace std;
class Fraction {
public:
	int num,den;
private:
	void normalize(){
	if (den == 0 || num == 0) {
        num = 0;
        den = 1;
    }
    if (den < 0) {
        num *= -1;
        den *= -1;
    }
    int n = gcf(num, den);
    num = num / n;
    den = den / n;
}
	int gcf(int a, int b){
		 if (a % b == 0)
        return abs(b);
    else
        return gcf(b, a % b);
}
	int lcm(int a, int b){
		return (a/gcf(a,b))*b;
	}
public:
	Fraction(){
		set(0,1);
	}
	Fraction(int n, int d){
		set(n,d);
	}
	Fraction(int n){
		set(n,1);
	}
	Fraction(const Fraction& src){
		cout << "kk" << endl;
		num=src.num;
		den=src.den;
	}
	void set(int n, int d){
		num=n;
		den=d;
		normalize();
	}
	Fraction add(const Fraction& other){
    Fraction fract;
	int lcd =lcm(den, other.den);
    int quot1 = lcd/den;
    int quot2 = lcd/other.den;
    fract.set(num * quot1 + other.num * quot2, lcd);
    fract.normalize();
    return fract;
}
	Fraction mult(const Fraction& other) {
    Fraction fract;
    fract.set(num * other.num, den * other.den);
    fract.normalize();
    return fract;
}
	Fraction operator*(const Fraction& other){
		return mult(other);
	}
	Fraction operator=(const Fraction& src){
		set(src.num,src.den);
		return *this;
	}
	bool operator==(const Fraction& other){
		return(num==other.num && den==other.den);
	}
	Fraction operator+(const Fraction& other){
		return add(other);
	}
	friend ostream& operator << (ostream& os, Fraction& fr){
		os << fr.num << fr.den;
		return os;
	}
	bool operator>(const Fraction &other){
		return ((num * other.den) > (den * other.num));
}
	bool operator<(const Fraction &other){
		return ((num * other.den) < (den * other.num));
}  
};
int main() {
        Fraction f1(1,2);
        Fraction f2(1,3);
        Fraction f3(5);
        Fraction f4;
        f4 = f1+f2+f3; 
	cout << "1/2 + 1/3 + 5 = " << f4.num << "/" << f4.den << endl;
	Fraction f5 = f1*f2*f3;
	cout << "1/2 * 1/3 * 5 = " << f5.num << "/" << f5.den << endl;
	if (f3>f2==true && f3>f2==true && f1>f2==true)
		cout << f2.num << "/" << f2.den << " < " << f1.num << "/" << f1.den << " < " << f3.num << "/" << f3.den << endl;
		return 0;
	}


Вернуться к обсуждению:
Оператор присваивания C++
0
Лучшие ответы (1)
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.07.2010, 12:29
Готовые ответы и решения:

Для шаблонного класса перегрузить оператор присваивания, copy-конструктор, объекты cin и cout, оператор *
Помогите в следующем: Для класса шаблона следует перегрузить оператор присваивания, конструктор...

Оператор присваивания
Здравствуйте! Есть класс, в котором перегружены операции сложения и присваивания: void operator...

оператор присваивания
Подскажите пожалуйста, вот я создал класс, конструктор которого создает 2хмерный массив из 2ойного...

оператор присваивания
Привет всем ! Каким образом вызывается оператор присваивания, например, здесь: a = &quot;I &quot;; если в...

9
12.07.2010, 12:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.07.2010, 12:29
Помогаю со студенческими работами здесь

Оператор присваивания
Какая разница между оператором &quot;=&quot; и &quot;==&quot; Почему , например , в цикле нужно писать ...

Оператор присваивания.
Всем привет!В универе щас работаем с классами и перегрузками.В частности перегрузкой оператора...

Оператор присваивания
Добрый день! Помогите, пожалуйста, разобраться. Я не совсем понимаю работу перегруженного...

Оператор присваивания в c++
Такой вопрос, для каких классов следует явно перегрузить оператор присваивания??

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru