Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.07.2010, 23:48   #1
Superlotles
Пользователь
 
Аватар для Superlotles
 
Регистрация: 18.08.2009
Сообщений: 86
По умолчанию Ошибка в классе

Помогите исправить ошибку
На этой строке возникает ошибка
Код:
	Point operator+(const Fraction& other){
Вот ошибка:
error C2143: syntax error : missing ';' before '+'
error C2501: 'Fraction::Point' : missing storage-class or type specifiers

Код:
#include <stdafx.h>
#include <conio.h>
using namespace std;
class Fraction {
private:
	int num,den;
	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){
		num=src.num;
		den=src.den;
	}
	void set(int n, int d){
		num=n;
		den=d;
		normalize();
	}
	int get_num() const{
		return num;
	}
	int get_den() const{
		return den;
	}
	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);
	}
	int operator==(const Fraction& other){
		return(num==other.num && den==other.den);
	}
	Point operator+(const Fraction& other){
		return add(other);
	}
	friend ostream& operator << (ostream& os, Fraction& fr){
		os << fr.num << fr.den;
		return os;
	}
};
int main() {
    Fraction f1(1,2);
    Fraction f2(1,3);
	Fraction f3 = f1+f2;
    cout << "1/2 + 1/3 + 1 = " << f3 << endl;
    return 0;
}
Skype: Lotles-XXXX
Superlotles вне форума Ответить с цитированием
Старый 09.07.2010, 00:02   #2
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

раз
Код:
#include <stdafx.h>
#include <iostream>
#include <conio.h>
два
Код:
Fraction operator+(const Fraction& other){
		return add(other);
}
у тебя вобще нет такого класса Point и ф-я add возвращает Fraction
NiCola999 вне форума Ответить с цитированием
Старый 09.07.2010, 00:05   #3
ozo
Форумчанин
 
Аватар для ozo
 
Регистрация: 26.04.2010
Сообщений: 328
По умолчанию

Копипастер детектед.

У вас нигде не объявлен класс Point, читайте что вам компилятор вещает.
Используй гугль, будь счастлив
hackme@yandex.ru
Блог об archlinux
ozo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
конструктор в классе V@mpire Общие вопросы C/C++ 5 01.06.2010 02:04
Удаление в классе! Telec Помощь студентам 1 30.04.2010 18:43
Интернет в компьютерном классе. soktahan Свободное общение 8 10.11.2008 06:05
константность в классе softrix Общие вопросы C/C++ 1 17.06.2008 00:21