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

Шаблоны STL - C++

Восстановить пароль Регистрация
 
Ronan
1 / 1 / 0
Регистрация: 28.06.2013
Сообщений: 29
01.08.2013, 21:25     Шаблоны STL #1
Здраствуйте. У меня задача такая: робота со стандарными шаблонами. Мне нужно заполнить контейнер пользовательским типом даных, тоесть класом. У меня написан клас (по возможности проверть перегрузку фкнкции) но я никак не могу создать массив vector<Student> VStudent(4); не понимаю почему. пример в книге точно такой же, и все работает. не могу проверить размер контейнера c помощью VStuden.size()
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
#include <iostream>
#include <vector>
#include <list>
#include <algorithm>
#include <string>
using namespace std;
 
class Student{
public:
    Student();
    Student(string name,int age,float mark);
    Student(Student &rhs);
    ~Student(){}
    void SetName(string & name) {his_name=name;}
    string GetName () const {return his_name;}
    void SetAge (int age){his_age=age;}
    int GetAge () const {return his_age;}
    void SetMark (float mark){his_mark=mark;}
    int GetMark () const {return his_mark;}
    Student & operator = (const Student&);
    static int count;
    friend istream& operator>>(istream& is,Student &rhs);
    friend ostream& operator<<(ostream& os, const Student& rhs);
 
private:
    string his_name;
    int his_age;
    float his_mark;
};
 
 
Student::Student():his_name("Student"),his_age(17),his_mark(4.5){
    count++;
 
}
Student::Student(string name,int age,float mark){
    his_name=name;
    his_age=age;
    his_mark=mark;
    count++;
}
Student::Student(Student &rhs):
his_name(rhs.GetName()),
his_age(rhs.GetAge()),
his_mark(rhs.GetMark())
{}
Student & Student :: operator =(const Student & rhs){
    his_name=rhs.GetName();
    his_age=rhs.GetAge();
    his_mark=rhs.GetMark();
    return *this;
 
}
ostream& operator<<(ostream& os, const Student& rhs)
{
   os << rhs.GetName() << " is " << rhs.GetAge() << " years old and "<<"his mark is:"<<rhs.GetMark();
   return os;
}
istream& operator>>(istream& is,Student &rhs){
    is>>rhs.his_name;
    is>>rhs.his_age;
    is>>rhs.his_mark;
    return is;
}
int Student::count=0;
 
typedef vector<Student> StVec;
typedef list<Student> StList;
 
int main() {
 
    StVec Vstudent_array;
    StList Lstudent_array;
 
    Student Pavlo;
    Student Ivan("Ivan",17,4.5);
    Student Petro("Petro",18,4.0);
    Student Harry("harry",23,4.7);
    Student Mika("Mika",18,4.9);
    cout<<Student::count<<endl;
    StVec Vstudent(4);
    cout<<Vstudent_array.size()<<endl;
    cout<<Vstudent.size()<<endl;
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.08.2013, 21:25     Шаблоны STL
Посмотрите здесь:

STL C++
C++ STL
C++ STL
C++ STL
C++ STL.
C++ STL
C++ STL
C++ STL

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
01.08.2013, 21:38     Шаблоны STL #2
в 2012 студии все вроде работает.
описывайте подробнее, что вы там не можете.
если ошибки компиляции - то полный список ошибок сюда постите.
если ошибки в рантайме - то описывайте, какое поведение вы
ожидаете, и как ведет себя программа на самом деле.
Ronan
1 / 1 / 0
Регистрация: 28.06.2013
Сообщений: 29
01.08.2013, 21:45  [ТС]     Шаблоны STL #3
DU, спасибо, я уже переделал и работает. Там просто в конструкторе с параметрами надо было поставить к значениям const. То самое и для контсруктора копий, хотя я еще не понимаю почему должно быть именно так. маловато опыта)
Yandex
Объявления
01.08.2013, 21:45     Шаблоны STL
Ответ Создать тему
Опции темы

Текущее время: 01:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru