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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.10.2010, 15:45   #1
jennya
Пользователь
 
Регистрация: 21.06.2010
Сообщений: 30
По умолчанию Хранение в векторе объектов пользовательского класса

Всем доброго вечера. дана программа, которая должна выполнять хранение в векторе объектов пользовательского класса:

#include <iostream>
#include <vector>
using namespace std;
class Demo {
double d;
public:
Demo() {d = 0.0;}
Demo (double x) {d = x;}
Demo &operator = (double x) {
d = x; return * this;
}
double getd() {return d;}
};
boll operator < (Demo a, Demo b)
{
return a.getd() < b.getd();
}
boll operator == (Demo a, Demo b)
{
return a.getd() == b.getd();
}
int main()
{
vector<Demo> v;
int i;
for (i = 0; i < 10; i++)
v.push_back(Demo(i/3.0));
for (i = 0; i < v.size(); i++)
cout << v[i].getd() << " ";
cout << endl;
for (i = 0; i < v.size(); i++)
v[i] = v[i].getd() * 2.1;
for (i = 0; i < v.size(); i++)
cout << v[i].getd() << " ";
return 0;
}

Упражнение взято из книги Г. Шилдта "Самоучитель С++" вроде должно быть правильно, но при компиляции выскакивают ошибки:

Error 1 error C2143: syntax error : missing ';' before '<' c:\users\администратор\documents\vi sual studio 2008\projects\c++\console\p435\p435 \p435.cpp 14 p435
Error 2 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\users\администратор\documents\vi sual studio 2008\projects\c++\console\p435\p435 \p435.cpp 14 p435
Error 3 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\users\администратор\documents\vi sual studio 2008\projects\c++\console\p435\p435 \p435.cpp 15 p435
Error 4 error C2143: syntax error : missing ';' before '==' c:\users\администратор\documents\vi sual studio 2008\projects\c++\console\p435\p435 \p435.cpp 18 p435
Error 5 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\users\администратор\documents\vi sual studio 2008\projects\c++\console\p435\p435 \p435.cpp 18 p435
Error 6 error C2086: 'int boll' : redefinition c:\users\администратор\documents\vi sual studio 2008\projects\c++\console\p435\p435 \p435.cpp 18 p435
Error 7 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\users\администратор\documents\vi sual studio 2008\projects\c++\console\p435\p435 \p435.cpp 19 p435
Warning 8 warning C4018: '<' : signed/unsigned mismatch c:\users\администратор\documents\vi sual studio 2008\projects\c++\console\p435\p435 \p435.cpp 28 p435
Warning 9 warning C4018: '<' : signed/unsigned mismatch c:\users\администратор\documents\vi sual studio 2008\projects\c++\console\p435\p435 \p435.cpp 31 p435
Warning 10 warning C4018: '<' : signed/unsigned mismatch c:\users\администратор\documents\vi sual studio 2008\projects\c++\console\p435\p435 \p435.cpp 33 p435

пишет, что нужно поставить ; перед <
jennya вне форума Ответить с цитированием
Старый 03.10.2010, 16:01   #2
ThisIzGame
Форумчанин
 
Регистрация: 31.08.2009
Сообщений: 161
По умолчанию

Код:
boll operator < (Demo a, Demo b)
{
return a.getd() < b.getd();
}
boll operator == (Demo a, Demo b)
{
return a.getd() == b.getd();
}
заменить на
Код:
bool operator < (Demo a, Demo b)
{
return a.getd() < b.getd();
}
bool operator == (Demo a, Demo b)
{
return a.getd() == b.getd();
}
ThisIzGame вне форума Ответить с цитированием
Старый 03.10.2010, 19:09   #3
jennya
Пользователь
 
Регистрация: 21.06.2010
Сообщений: 30
По умолчанию Хранение в векторе объектов пользовательского класса

Спасибо огромное.

А издательству "БХВ-Петербург" и в частности Сергееву Вадиму, Жданову Алексею, Ольги Сергиенко, Натальи Боговой, зинаиде дмитриевой, дмитрию солнцеву ,елене клыковой и николаю тверских полный стыд и срам прежде чем книгу запускать в печать и в продажу нужно было все внимательно проверить, а они так сильно торопятся по быстрее и по больше срубить денег
jennya вне форума Ответить с цитированием
Старый 03.10.2010, 19:13   #4
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2jennya
дам совет. никогда не покупай книги по программированию российских авторов. особенно от бхв, если конечно, тебе не нужна дорогая туалетная бумага.
покупай от вильямса, они обычно пересдают от аддисон веслей
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 03.10.2010, 19:16   #5
jennya
Пользователь
 
Регистрация: 21.06.2010
Сообщений: 30
По умолчанию Хранение в векторе объектов пользовательского класса

Спасибо за совет учтую
jennya вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
создание объектов класса Serjuk Общие вопросы C/C++ 8 13.05.2010 18:54
Коллекция объектов класса в С++ MarihuanaP Помощь студентам 2 09.05.2010 13:06
Создание объектов класса в цикле Formdet Общие вопросы .NET 4 23.04.2010 21:43
Массив эллементов пользовательского класса windzor Общие вопросы .NET 4 02.03.2010 19:53
Использование конструкторов и деструктора при проектировании пользовательского класса НеважНо Общие вопросы C/C++ 1 22.01.2010 14:56