Форум программистов, компьютерный форум CyberForum.ru

Вывод списка объектов. Выводится только ссылка на первый элемент - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Расчёт логического выражения http://www.cyberforum.ru/cpp-beginners/thread1070780.html
Вопрос 1. Дана строка типа "(5>8)AND(true)OR(NOT(6<=5))" Тоесть простое логическое выражения в виде строки со скобками, числами, логическими операторами. Строка произвольная. Как высчитать её значение? Хоть в какую сторону копать, чтоб не изобретать велосипед? Вопрос 2. У меня есть структура с параметрами (целые числа). Есть текстовый файл со строками. В каждой строке Логическое...
C++ Контур прямоугольника Доброй ночи. Подскажите пожалуйста, пытаюсь написать программку которая выводит на экран пустотелый прямоугольник. в чем ошибка? #include <iostream> using namespace std; void main() { setlocale(LC_ALL,"rus"); int gor,vert,dlina,symbol; char znak; cout<<"Вывод на экран прямоугольника\n"; cout<<"Введите количество символов в строке\n"; http://www.cyberforum.ru/cpp-beginners/thread1070776.html
C++ Считать из файла структуры в массив (указателей)
Ребята, как это грамотно сделать? Мой моск вскипел. Файл бинарный, количество экземпляров всегда одно и то же. В программе эти структуры обрабатываются, значения изменяются, затем снова записываются в файл. Вот эта функция адекватно работает только для первого элемента массива: struct dates { char name; int serNumber; double volume; dates* readFile(int arrsize) { dates data1,...
шаблонный вложенный класс в .cpp C++
Привет всем! есть шаблонный вложенный класс . template<typename FinalVertex> class BFSVisitor : boost::default_bfs_visitor { public: BFSVisitor(FinalVertex final); ~BFSVisitor() = default; template<typename Vertex, typename Graph> void discover_vertex(Vertex u, Graph& g) const;
C++ Программа, которая будет продуцировать цепочки(слова) в трехсимвольном алфавите с записью их в файл http://www.cyberforum.ru/cpp-beginners/thread1070754.html
Доброе время суток. Помогите пожалуйста разобраться с задачей. "Создать программу на С++, которая будет продуцировать цепочки(слова) в трехсимвольном алфавите с записью их в файл, причем длина L цепочек ограничена: L1 <= L <= L2 и для каждой цепочки, отобранной в файл, должно выполняться условие < A >. Общее количество цепочек в файле должно быть не более M. Для продуцирования цепочек в...
C++ Найти среднюю оценку каждого стьюдента Для каждого из N студентов группы известны ФИО и оценки по 4рем дисциплинам. Найти собственно нужно среднюю оценку каждого стьюдента и вывести стьюдента с мах средним балом. #include<iostream> #include<string> using namespace std; struct Date { int one; int two; int three; int four; подробнее

Показать сообщение отдельно
ВиталикТопКодер
0 / 0 / 0
Регистрация: 14.01.2014
Сообщений: 11
14.01.2014, 22:45  [ТС]     Вывод списка объектов. Выводится только ссылка на первый элемент
cпасибо большое, очень помогли!

Добавлено через 1 час 20 минут
Ребята, а как теперь правильно отсортировать список со своим типом? .sort() не работает(. Нету разницы по какому из параметров сортировать.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#include <iostream>
#include <list>
#include <fstream>
#include <iomanip>
using namespace std;
class circle;
 
template <class T>
class mylist : public list<T>
{
public:
   mylist() {};
   bool isEmpty(mylist<circle>);
 
};
 
class circle {
public:
   int rad;
   int height;
   double square;
   double capacity;
   double pi;
   double sqr();
   double cap();
   circle(int,int,double,double,double);
   circle(int,int,double);
 
 
};
 
std::ostream &operator << (std::ostream & s, const circle& c )
{
   
   return s << c.rad << setw(3) << c.height << "   " << c.square << "   " << c.capacity;
}
template<> bool mylist<circle>::isEmpty(mylist<circle> list){
   
   if(list.size() != 0)
      return false;
   else
      return true;
}
 
 
circle::circle(int a,int b,double p,double sqr,double cap):
rad(a),
height(b),
pi(p),
square(sqr),
capacity(cap)
{}
 
circle::circle(int a,int b,double p):
height(a),
rad(b),
pi(p){
   
}
 
double circle::sqr(){
   return 2 * pi * rad * (rad + height);
}
 
double circle::cap(){
   return pi * rad * rad * height;
}
 
int main(){
   double pi = 3.14;
   int height,radius;
   mylist<circle>::iterator it;
   mylist<circle>list;
   int choose;
   do{
      cout << endl;
      cout << "1.Add new object" << endl;
      cout << "2.Print list" << endl;
      cout << "3.Sort list" << endl;
      cout << "100. Exit" << endl;
      cin >> choose;
      switch (choose) {
         case 1: {
            cout << "Enter height and radius" << endl;
            cin >> height >> radius;
            circle circ(height,radius,pi);
            list.push_back(circle(height, radius, pi, circ.sqr(), circ.cap()));
            break;
         }
            
        case 2: {
            if(list.isEmpty(list)){
               cout << "All lists is empty ! " << endl;
            }
            else {
               for( const auto& e : list )
               {
                  cout << e << endl;
               }
               
            }
            break;
         }
         case 3:{
         list.sort() /// ??? тут выдает ошибку
        break;
        }
                default:{
            cout << "Not found menu " << endl;
            break;
         }
      }
   }while(choose != 100);
}
Добавлено через 42 минуты
попробовал перегрузить оператор <, но так же не хочет сравнивать типы. Помогите.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#include <iostream>
#include <list>
#include <fstream>
#include <iomanip>
using namespace std;
class circle;
 
template <class T>
class mylist : public list<T>
{
public:
   mylist() {};
   bool isEmpty(mylist<circle>);
 
};
 
class circle {
public:
   int rad;
   int height;
   double square;
   double capacity;
   double pi;
   double sqr();
   double cap();
   circle(int,int,double,double,double);
   circle(int,int,double);
   bool operator < (circle&);
};
 
ostream &operator << (ostream & s, const circle& c )
{
   
   return s << c.rad << setw(3) << c.height << "   " << c.square << "   " << c.capacity;
}
 
bool circle::operator < (circle & circ){
   return rad < circ.rad;
}
template<> bool mylist<circle>::isEmpty(mylist<circle> list){
   
   if(list.size() != 0)
      return false;
   else
      return true;
}
 
 
circle::circle(int a,int b,double p,double sqr,double cap):
rad(a),
height(b),
pi(p),
square(sqr),
capacity(cap)
{}
 
circle::circle(int a,int b,double p):
height(a),
rad(b),
pi(p){
   
}
 
double circle::sqr(){
   return 2 * pi * rad * (rad + height);
}
 
double circle::cap(){
   return pi * rad * rad * height;
}
 
int main(){
   double pi = 3.14;
   int height,radius;
   mylist<circle>::iterator it;
   mylist<circle>list;
   int choose;
   do{
      cout << endl;
      cout << "1.Add new object" << endl;
      cout << "2.Print list" << endl;
      cout << "3.Sort list" << endl;
      cout << "100. Exit" << endl;
      cin >> choose;
      switch (choose) {
         case 1: {
            cout << "Enter height and radius" << endl;
            cin >> height >> radius;
            circle circ(height,radius,pi);
            list.push_back(circle(height, radius, pi, circ.sqr(), circ.cap()));
            break;
         }
            
        case 2: {
            if(list.isEmpty(list)){
               cout << "All lists is empty ! " << endl;
            }
            else {
               for( const auto& e : list )
               {
                  cout << e << endl;
               }
               
            }
            break;
         }
         case 3:{
         list.sort() /// ??? тут выдает ошибку
        break;
        }
                default:{
            cout << "Not found menu " << endl;
            break;
         }
      }
   }while(choose != 100);
}
Добавлено через 1 час 12 минут
помогите, ребят, пишут что нужно реализовать перегрузку оператора < , сделал и все равно не работает. Подскажите хотя бы как правильно перегрузить

Добавлено через 1 час 15 минут
Ребят, ну помогите, сдавать завтра. Хотя бы какой-то совет
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru