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

Работа с вектором из класса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как убрать указатели на пробелы и табы http://www.cyberforum.ru/cpp-beginners/thread948021.html
Помогите пожалуйста... У Меня следующая проблема: http://i60.***********/thumb/2013/0903/54/e1ea807dc1af483a58b8a883f6cac154.jpeg Как Мне убрать то, что выделено в скриншоте(т.е. указатели на то, что "там стоит пробел", там "таб"...)? Пробовал уже сделать полный сброс настроек - не помогло...
C++ Сравнение переменных или чтение с файла? После тестировки, выяснилось, что проблема возникает в строке указаной коментом. Хочу узнать в чем заключается ошибка.Возможно проблема связана с чтением с файла. в файле текст записан в таком формате: Administrator bogdan victor vika #include <iostream> #include <fstream> http://www.cyberforum.ru/cpp-beginners/thread947988.html
Среда разработки. Дайте совет C++
Подскажите пожалуйста такой момент: я только изучаю ооп, так что пишу под консоль. Сейчас пользуюсь MVS.Все хорошо, но напрягает количество файлов/каталогов при создании проекта. Есть ли такая среда, которая: а) создавала минимум файлов при компиляции и запуске б) при открытии файла *.срр его можно было бы сразу компилировать и запускать. ? Что то на подобии Borland C++ 4,5 только...
Вешает ноутбук C++
Прикиньте, при запускепрограммы, содержащей следующие строки, пошли конкретные тормоза. Что и ожидалось. Хотя памяти она ест но и и не совсем так уже, не так уж . Главное, когда минут через пять я эту прогу из процессов вырубил, именно эту прогу, тормоза остались!! Наиужутчайшие!!!Прошло уже минут 17, и все выглядело так!! Я вырубил самого редактора си-два-плюса, или как его правильно...
C++ Задания в книге http://www.cyberforum.ru/cpp-beginners/thread947925.html
Читаю Язык программирования С++. Лекции и упражнения. Прата С. 2012. После каждой главы идут "Вопросы по самоконтролю" - на которые есть ответы, с которыми я могу свериться. А вот дальше идут "Упражнения по программированию" - и не могу понять, что ответов к ним не сделали? Мм... я напишу говнокод на 500 строк, посчитаю это правильно выполненным заданием и буду счастлив? Хотя возможно...
C++ Простые алгоритм поиска? Поделитесь, пожалуйста, вашими простые алгоритмами поиска char в char. Вот - есть мой собственный алгоритм, но мне он кажется некрасивым, громоздким и усложненным. Если понадобится, то мог его скинуть. подробнее

Показать сообщение отдельно
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.09.2013, 19:50
Если по-быстрому, то как-то так (добавил к коду из другой вашей темы):
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <windows.h>
using namespace std;
 
class Employee
{  
public: 
    string name;
    int id;    
    double wage;
    Employee();
    Employee(const string n, int id_);
    virtual void wage_count() = 0;
    virtual void show(){cout<<name<<" "<<wage<<endl;};
    virtual ~Employee(){};
    static  int Compirer(Employee *one, Employee *two);
};
 
int Employee::Compirer(Employee *one, Employee *two){
    if(one->wage == two->wage)
        return (one->name.compare(two->name.c_str())<0)? 1:0;
    else
        return (one->wage > two->wage)? 1 : 0;
}
 
class Bytime : public Employee
{    
    double b_w;
    double b_wage;
public:
    Bytime();
    Bytime(const string n, int id, double b_w);
    virtual void wage_count();
};
 
class Fixed : public Employee
{    
    double f_w;
    double f_wage;
public:
    Fixed();
    Fixed(const string n, int id, double f_w);
    virtual void wage_count ();
};
 
Employee::Employee()
{}
Employee::Employee(const string n, int id_):name(n), id(id_)
{}
Fixed::Fixed()
{}
Fixed::Fixed(const string n, int id, double f_w) : Employee(n,id)
{
    f_wage = f_w;
}
Bytime::Bytime()
{}
Bytime::Bytime(const string n, int id, double b_w) : Employee(n,id)
{
    b_wage = b_w;
}
void Bytime::wage_count()
{
    wage = 20.8*8*b_wage;
}
void Fixed::wage_count()
{
    wage = f_wage;
}
 
class ListEmployee
{
    vector <Employee *> vemp;
 
public :
    void add(Employee* emp)
    {
        vemp.push_back(emp);
    }
    
    void sortList()
    {
        sort(vemp.begin(), vemp.end(), &Employee::Compirer);
    }
 
    void showList()
    {
        for(int i = 0; i < vemp.size(); ++i) 
        {
            vemp[i]->show();
        }
    }
 
    void wage_countList()
    {
        for(int i = 0; i < vemp.size(); ++i) 
        {
            vemp[i]->wage_count();
        }
    }
};
 
int main()
{
    SetConsoleCP (1251); SetConsoleOutputCP (1251);
    Bytime bt("Vasya", 1, 5.0);
    Bytime bt1("Basya", 2, 6.0);
    Fixed fx("Alice", 3, 832.0);
    Fixed fx1("Sonya", 4, 850.0);
    
    ListEmployee listemp;
    
    listemp.add(&bt);
    listemp.add(&bt1);
    listemp.add(&fx);
    listemp.add(&fx1);
 
    listemp.wage_countList();
 
    listemp.showList();
    
    listemp.sortList();
    
    cout<<"-------------------"<<endl;
    
    listemp.showList();
    
    cin.get();   
    return 0;
}
Добавлено через 16 минут
Если вы в одном списке будете хранить указатели на объекты разных классов, то хорошо бы сделать в каждом классе идентификатор класса, по которому можно будет, в общем списке, отличать объекты одного класса от другого (если, например, потребуется вывести данные работников определённого класса). И добавление работников в список можно так организовать, чтобы сначала вводились данные, а потом, в зависимости от выбранного класса, вызывался нужный конструктор.
И, по моему, раз уж список, то здесь лучше использовать std::list, а не std::vector.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru