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

Вектор из указателей абстракттного класса - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ сортировка http://www.cyberforum.ru/cpp-beginners/thread941362.html
#include <iostream> using namespace std; class Student { public: Student(){id=0;score=0;}; void setID() {cout<<"enter ID: "; cin>>id;}
C++ switch - оптимизация компилятора Собственно, применяется ли оптимизация компилятором в виде двоичного поиска по case'ам switch'а, если я указывал case'ы в порядке возрастания и, при этом, после каждого case свой break? А если вразброс, но так же с break (он их отсортирует)? А если все case'ы представляют из себя возрастающую последовательность с шагом 1 (будет ли оно приведено в массив "указателей" на код с O(1)-индексацией)?... http://www.cyberforum.ru/cpp-beginners/thread941347.html
Переменная удаляется после присваивания C++
После строки 85 переменная c почему-то удаляется. #include "stdafx.h" #include <iostream> #include <string.h> #include <conio.h> using namespace std; class String { public:
C++ Как по требованию вызвать дескриптора объекта?
Здрасти! Подскажите пожалуйста, как вызвать дескриптор объекта myCar до сообщения "End of programm"?: class Car { public: Car() {cout << "Constructor active\n";} ~Car() {cout << "Destructor active\n";} };
C++ Общая задача по теорверу http://www.cyberforum.ru/cpp-beginners/thread941296.html
Всем привет, начал изучать теор вер, и заодно так сказать, автоматизировать решение некоторых задач в общем виде. Есть задача, имеется W белых шаров и B черных, и количество ящиков N. Далее человек вытаскивает один шар из первого ящика и перекладывает в другой и так до N, необходимо узнать вероятность того, что человек достанет либо белый либо черный шар из последнего ящика. Алгоритм по сути...
C++ работа с массивом указателей #include <iostream> using namespace std; int main() { const int size=3; char *student={}; подробнее

Показать сообщение отдельно
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6172 / 2901 / 284
Регистрация: 04.12.2011
Сообщений: 7,722
Записей в блоге: 3
22.08.2013, 04:16     Вектор из указателей абстракттного класса
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
#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;
}
//--------------------------------
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);
vector<Employee*> emp;
emp.push_back(&bt);
emp.push_back(&bt1);
emp.push_back(&fx);
emp.push_back(&fx1);
 
for(int i = 0; i < 4; ++i) {
    emp[i]->wage_count();
    emp[i]->show();
}
sort(emp.begin(), emp.end(), &Employee::Compirer);
cout<<"-------------------"<<endl;
for(int i = 0; i < 4; ++i) {
    emp[i]->show();
}
cin.get();   
return 0;
}
 
Текущее время: 10:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru