28.07.2017, 09:43 [+3 UTC]
в нашей команде: 2 070 чел. | участники онлайн: 3 (рекорд: 21)

:: РЕГИСТРАЦИЯ

:: консультации

:: задать вопрос

:: все разделы

:: правила

:: новости

:: участники

:: доска почёта

:: форум

:: блоги

:: поиск

:: статистика

:: наш журнал

:: наши встречи

:: наша галерея

:: отзывы о нас

:: поддержка

:: руководство

Версия системы:
7.41 (25.02.2017)

Общие новости:
23.02.2017, 09:51

Форум:
28.07.2017, 06:14

Последний вопрос:
25.07.2017, 13:46

Последний ответ:
28.07.2017, 03:28

Последняя рассылка:
28.07.2017, 05:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
14.10.2009, 22:11 »
Xgrows
Точно! Как это я сразу не увидел! Обязательно так и сделаю! Спасибо большое за исправление! [вопрос № 173236, ответ № 255427]
12.07.2010, 16:33 »
Ольга Андреева
Спасибо. Датчик посмотрела,температура 43, думаю это нормально. А вот тест стабильности системы не нашла, у меня версия Everest v 2.20.475 Beta. В этой версии похоже нет такой функции. [вопрос № 179470, ответ № 262506]
01.09.2013, 21:43 »
Xgrows
Спасибо за развернутый ответ! Попробую воспользоваться вашим советом [вопрос № 187529, ответ № 272478]

РАЗДЕЛ • С / С++

Создание программ на языках C и C++.

[администратор рассылки: Андрей Кузнецов aka Dr_Andrew (Старший модератор)]

Лучшие эксперты в этом разделе

Лысков Игорь Витальевич
Статус: Старший модератор
Рейтинг: 356
Коцюрбенко Алексей aka Жерар
Статус: Мастер-Эксперт
Рейтинг: 141
mklokov
Статус: 6-й класс
Рейтинг: 107

Перейти к консультации №:
 

Консультация онлайн # 190185
Раздел: • С / С++
Автор вопроса: User194586 (Посетитель)
Отправлена: 29.11.2016, 08:41
Поступило ответов: 1

Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:

Помогите решить прооблему с ошибкой. Есть класс Time, который находится в другой папке и когда я меняю тип вектора с Vector<int>v(3) на Vector<Time>v(3), то сыпатся ошибка.
Использую DEV-C++ 4.9.9.2
файл Time.h

class Time
{
int min, sec;
public:
Time(){min=0;sec=0;};
Time(int m, int s){min=m;sec=s;}
Time(const Time&t){min=t.min;sec=t.sec;}
~Time(){};
int get_min(){return min;}
int get_sec(){return sec;}
void set_min(int m){min=m;}
void set_sec(int s){sec=s;}
//перегруженные операции
Time&operator=(const Time&);
Time operator+(const Time&);
Time operator/(const Time&);
Time operator/(const int&);
bool operator >(const Time&);
bool operator <(const Time&);
//глобальные функции ввода-вывода
friend istream& operator>>(istream&in, Time&t);
friend ostream& operator<<(ostream&out, const Time&t);
};


файл Time.cpp
#include "Time.h"
//перегрузка операции присваивания
Time&Time::operator=(const Time&t)
{
//проверка на самоприсваивание
if(&t==this) return *this;
min=t.min;
sec=t.sec;
return *this;
}
//перегрузка глобальной функции-операции ввода
istream&operator>>(istream&in, Time&t)
{
cout<<"min?"; in>>t.min;
cout<<"sec?"; in>>t.sec;
return in;
}
//перегрузка глобальной функции-операции вывода
ostream&operator<<(ostream&out, const Time&t)
{
return (out<<t.min<<" : "<<t.sec);
}

bool Time::operator <(const Time &t)
{
if(min<t.min)return true;
if(min==t.min&&sec<t.sec)return true;
return false;
}
bool Time::operator >(const Time &t)
{
if(min>t.min)return true;
if(min==t.min&&sec>t.sec)return true;
return false;
}
Time Time::operator+(const Time&t)
{
int temp1=min*60+sec;
int temp2=t.min*60+t.sec;
Time p;
p.min=(temp1+temp2)/60;
p.sec=(temp1+temp2)%60;
return p;
}
//перегрузка бинарной операции деления
Time Time::operator/(const Time&t)
{
int temp1=min*60+sec;
int temp2=t.min*60+t.sec;
Time p;
p.min=(temp1/temp2)/60;
p.sec=(temp1/temp2)%60;
return p;
}
Time Time::operator/(const int&t)
{
int temp1=min*60+sec;
Time p;
p.min=(temp1/t)/60;
p.sec=(temp1/t)%60;
return p;
}


файл zadacha3_main.cpp
//полный путь к файлу Time.h
using namespace std;
#include <iostream>
#include "Vector.h"
#include <C:\prog\11\2\Time.h>
int main(void)
{
Vector<Time>vec(5);//создать вектор из 5 элементов
vec.Print();//печать вектора
Time s=vec.Srednee();//среднее ариметическое
cout<<"Srednee="<<s<<endl;
cout<<"pos?";
int p;
cin>>p;//ввести позицию для добавления
vec.Add(s,p);//добавить элемент в вектор
vec.Print();//печать вектора
p=vec.Max();//найти максимальный элемент
vec.Del(p);//удаление
vec.Print();//печать
vec.Delenie();//деление
vec.Print();//печать
system ("pause");
}


файл Vector.h
#pragma once
#include <vector>
#include <iostream>
//шаблон класса
template<class T>
class Vector
{
vector <T> v;//последовательный контейнер для хранения элементов вектора
int len;
public:
Vector(void);//конструктор без параметра
Vector(int n);//конструктор с параметром
void Print();//печать
~Vector(void);//деструктор
T Srednee();//вычисление среднего арифметического
void Add(T el, int pos);//добавление элемента el на позицию pos
int Max();//найти номер максимальнго элемента
void Del(int pos);//удалить элемент из позиции pos
int Min();//найти номер минимальнго элемента
void Delenie();//деление на минимальный
};

//конструктор без параметра
template <class T>
Vector<T>::Vector()
{
len=0;
}
//деструктор
template <class T>
Vector<T>::~Vector(void)
{
}
//конструктор с параметром
template <class T>
Vector<T>::Vector(int n)
{
T a;
for(int i=0;i<n;i++)
{
cin>>a;
v.push_back(a);
}
len=v.size();
}
//печать
template <class T>
void Vector<T>::Print()
{
for(int i=0;i<v.size();i++)
cout<<v[i]<<" ";
cout<<endl;
}
//вычислить среднее арифметическое
template<class T>
T Vector<T>::Srednee()
{
T s=v[0];
for(int i=1;i<v.size();i++)
s=s+v[i];
int n=v.size();
return s/n;
}
//добавление элемента
template<class T>
void Vector<T>::Add(T el, int pos)
{
v.insert(v.begin()+pos,el);
}
//поиск максимального элемента
template <class T>
int Vector<T>::Max()
{
T m=v[0];
int n=0;
for(int i=1;i<v.size();i++)
if(v[i]>m)
{
m=v[i];
n=i;
}
return n;
}
//удаление элемента из позиции pos
template<class T>
void Vector<T>::Del(int pos)
{
v.erase(v.begin()+pos);
}
//поиск минимального элемента
template<class T>
int Vector<T>::Min()
{
T m=v[0];
int n=0;
for(int i=1;i<v.size();i++)
if(v[i]<m)
{
m=v[i];
n=i;
}
return n;
}
//деление всех элементов вектора на минимальный элемент
template<class T>
void Vector<T>::Delenie()
{
int m=Min();T min=v[m];
for(int i=0;i<v.size();i++)
v[i]=v[i]/min;
};
//поиск минимального элемента
template <class T>
int Vector<T>::Min()
{
T m=s.top();
vector<T> v=copy_stack_to_vector(s);
while(!s.empty())
{
if(s.top()<m)m=s.top();
s.pop();
}
s=copy_vector_to_stack(v);
return m;
}
//деление всех элементов на минимальный
template <class T>
void Vector<T>::Delenie()
{
T m=Min();
vector<T> v;
T t;
while(!s.empty())
{
t=s.top();
v.push_back(t/m);
s.pop();
}
s=copy_vector_to_stack(v);
}

Состояние: Консультация закрыта

Ответ # 274378 от solowey (5-й класс)

Здравствуйте, User194586!

могу посоветовать следующее:
1. в файле Vector.h разберитесь почему дублируются методы template <class T> int Vector<T>::Min() и template <class T> void Vector<T>::Delenie(). Это точно не даст собраться проекту. Так же в файл добавьте доступ к пространству имен std -

using namespace std;


2. в начало файла Time.h добавьте:
#include <istream>
#include <iostream>
using namespace std;


3. в файлe zadacha3_main.cpp укажите корректный путь к файлу Time.h. Обычно в угловых скобках (<>) указываются файлы идущие с компилятором. Файлы создаваемые пользователем указывают в кавычках ("").
#include "Time.h"


Так я бы перенес using namespace std после всех заголовочных файлов.

Пробуйте должно все собраться.


Консультировал: solowey (5-й класс)
Дата отправки: 04.12.2016, 09:24

5
нет комментария
-----
Дата оценки: 04.12.2016, 10:52

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 190185
User194586
Посетитель

ID: 400153

# 1

= общий = | 29.11.2016, 08:42 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Условие было такое:
Задача 3
1. Создать параметризированный класс, используя в качестве контейнера
последовательный контейнер.
2. Заполнить его элементами.
3. Добавить элементы в соответствии с заданием
4. Удалить элементы в соответствии с заданием.
5. Выполнить задание варианта для полученного контейнера.
6. Выполнение всех заданий оформить в виде методов параметризированного
класса.

solowey
5-й класс

ID: 400484

# 2

= общий = | 29.11.2016, 17:26 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Добрый день,

могу посоветовать следующее:
1. в файле Vector.h разберитесь почему дублируются методы template <class T> int Vector<T>::Min() и template <class T> void Vector<T>::Delenie(). Это точно не даст собраться проекту. Так же в файл добавьте доступ к пространству имен std -

using namespace std;

2. в начало файла Time.h добавьте:
#include <istream>
#include <iostream>
using namespace std;

3. в файлe zadacha3_main.cpp укажите корректный путь к файлу Time.h. Обычно в угловых скобках (<>) указываются файлы идущие с компилятором. Файлы создаваемые пользователем указывают в кавычках ("").
#include "Time.h"

Так я бы перенес using namespace std после всех заголовочных файлов.

Пробуйте должно все собраться.

• Отредактировал: solowey (5-й класс)
• Дата редактирования: 29.11.2016, 17:27

Андрей Кузнецов aka Dr_Andrew
Старший модератор

ID: 17042

# 3

= общий = | 03.12.2016, 09:18 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
solowey:

Оформите Ваш пост как ответ?

=====
We have but faith: we cannot know;
For knowledge is of things we see;
And yet we trust it comes from thee,
A beam in darkness: let it grow.
-----
https://www.linkedin.com/in/andreynkuznetsov
https://www.researchgate.net/profile/Andrey_Kuznetsov11
http://www.researcherid.com/rid/K-8824-2014

 

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

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.13308 сек.

© 2001-2017, Портал RFPRO.RU, Россия
Авторское право: ООО "Мастер-Эксперт Про"
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.41 от 25.02.2017
Бесплатные консультации онлайн