Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Классы 
:(
    Опции темы
Lotles
Дата 5.7.2010, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 6.4.2010

Репутация: нет
Всего: нет



На строке     
Код

return new_pt; 

выдает ошибку:

error C2440: 'return' : cannot convert from 'Point' to 'int'
ошибка C2440: 'возвращение': не могу конвертировать 'Point' в 'Int'

На строке
Код

Point point1,point2,point3;

выдает ошибку:

error C2146: syntax error : missing ';' before identifier 'Point'
ошибка C2146: синтаксическая ошибка: отсутствует ';' перед идентификатором 'Point'

Помогите исправить
Код

#include "stdafx.h"
#include <conio.h>
using namespace std;
class Point{
    private:
    double x,y;
public:
    Point(){
    }
    Point(int new_x,int new_y){
        set(new_x,new_y);
    }
    void set(int new_x, int new_y){
        if (new_x<0)
            new_x*=-1;
        if (new_y*=-1)
            new_y*=-1;
        x=new_x;
        y=new_y;
    }
    friend operator+(Point pt1, Point pt2){
    Point new_pt;
    new_pt.x=pt1.x+pt2.x;
    new_pt.y=pt1.y+pt2.y;
    return new_pt; 
    }
};

int main()
    Point point1,point2,point3;
    point2(1,2);
    point3(2,3);
    point1=point2+point3;
    return 0;
}


Это сообщение отредактировал(а) Lotles - 5.7.2010, 13:32
PM MAIL Skype   Вверх
azesmcar
Дата 5.7.2010, 13:29 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



Цитата(Lotles @  5.7.2010,  13:28 Найти цитируемый пост)
friend operator+(Point pt1, Point pt2){

Код

friend Point operator+(Point pt1, Point pt2){


Добавлено через 1 минуту и 42 секунды
...смени компилятор
PM   Вверх
djamshud
Дата 5.7.2010, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 4
Всего: 39



Код

friend Point operator+(Point pt1, Point pt2)

?

Добавлено через 20 секунд
so slow...


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
bsa
Дата 5.7.2010, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Lotles, своим постом djamshud хотел сказать, что лучше передавать объекты класса Point по константной ссылке, а не по значению. Так как это несколько быстрее, чем у тебя.
PM   Вверх
Lotles
Дата 5.7.2010, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 6.4.2010

Репутация: нет
Всего: нет



Вот так исправил код:
Код

#include "stdafx.h"
#include <conio.h>
using namespace std;
class Point{
    private:
    double x,y;
public:
    Point(){
    }
    Point(int new_x,int new_y){
        set(new_x,new_y);
    }
    void set(int new_x, int new_y){
        if (new_x<0)
            new_x*=-1;
        if (new_y*=-1)
            new_y*=-1;
        x=new_x;
        y=new_y;
    }
    friend Point operator+(Point& pt1, Point& pt2){
    Point new_pt;
    new_pt.x=pt1.x+pt2.x;
    new_pt.y=pt1.y+pt2.y;
    return new_pt;
    }
};

int main()
    Point point1,point2,point3;
    point2(1,2);
    point3(2,3);
    point1=point2+point3;
    return 0;
}

На этой строке выдает ошибку
Код

Point point1,point2,point3;

error C2146: syntax error : missing ';' before identifier 'Point'

На этой строке выдает ошибку
Код

point2(1,2);

error C2501: 'point2' : missing storage-class or type specifiers

Добавлено через 5 минут и 1 секунду
Цитата

...смени компилятор 

Зачем ?

Это сообщение отредактировал(а) Lotles - 5.7.2010, 20:15
PM MAIL Skype   Вверх
azesmcar
Дата 5.7.2010, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



Цитата(Lotles @  5.7.2010,  20:12 Найти цитируемый пост)
На этой строке выдает ошибку

Ну хоть такие ошибки то сам попробуй исправить, чему ты научишься, если про отсутствия каждой запятой будешь на форуме спрашивать?

Цитата(Lotles @  5.7.2010,  20:12 Найти цитируемый пост)
int main()
    Point point1,point2,point3;

забыл символ { поставить после main()

Цитата(Lotles @  5.7.2010,  20:12 Найти цитируемый пост)
    point2(1,2);
    point3(2,3);

что значат эти строки?

Цитата(Lotles @  5.7.2010,  20:12 Найти цитируемый пост)
Зачем ?

слишком старый, возьми что нибудь посовременнее.
судя по ошибке
Цитата(Lotles @  5.7.2010,  13:28 Найти цитируемый пост)
error C2440: 'return' : cannot convert from 'Point' to 'int'

твой компилятор поддерживает default int, если не указан возвращаемый тип функции, а это признак старости..видимо Visual Studio 6 или какой нибудь старенький Borland, которому давно пора на покой в Recycle Bin.
PM   Вверх
Lotles
Дата 5.7.2010, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 6.4.2010

Репутация: нет
Всего: нет



Цитата

Ну хоть такие ошибки то сам попробуй исправить, чему ты научишься, если про отсутствия каждой запятой будешь на форуме спрашивать?

Просто думаю что ошибка связана с чем то серьезным, а на самом деле какая-нибудь скобка или что то в этои роде
Кстате после main у меня была поставлена скобка, просто оказывается я неправильно написал, надо так
Код

Point point2(1,2);
Point point3(2,3);
Point point1=point2+point3;


а не так
Код

Point point1,point2,point3;
Point point2(1,2);
point3(2,3);
point1=point2+point3; 


Это сообщение отредактировал(а) Lotles - 5.7.2010, 21:09
PM MAIL Skype   Вверх
mrbrooks
Дата 6.7.2010, 07:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 19
Всего: 306



Lotles, в данном случае не критично, но вообще то неплохо перегрузить и оператор =
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0664 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.