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

Вывод вектора на экран (классы) - C++

Восстановить пароль Регистрация
 
kvartira
0 / 0 / 0
Регистрация: 29.09.2011
Сообщений: 20
14.01.2013, 03:55     Вывод вектора на экран (классы) #1
Доброй ночи.
Вкратце: есть класс банк и есть класс группа банков (который состоит из множества банков).
Хочу сделать так , что б можно было в вектор добавлять банки и что б можно было напечатать этот вектор.
набросал чутка код программы.
Кликните здесь для просмотра всего текста
test.cpp
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
#include "bank.h"
#include <iostream>
#include <vector>
using namespace std;
 
int main()
{
   bank nstu;
   group_bank nntu;
       cout << "\nENTER family,name,suname:\n";
   cin >> nstu;
    cout<<"\nMENU enter\n";
       while(1)
    {
     unsigned int key;
        if(key==4)
        break;
       cout<<"3.addбанк\n4.exit\n";
           cin>>key;
      switch (key)
     {   case 2:
        cout<<"add"<<nntu.addbank()<<"\n"<<endl;
         case 3:
         cout<<nstu;
         //case 4 - вывод вектора на экран.
          break;
       }
    }
   return 0;
}
bank.cpp
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
#include <vector>
#include "bank.h"
 
bank::bank()
    : family(),name(),suname()
{
 
}
group_bank::group_bank()
      :name_group_bank()
      {
 
      }
std::ostream& operator<< (std::ostream& os, const bank& vklad)
{
   os <<vklad.family<<' '<<vklad.name<<' '<<vklad.suname;
   return os;
}
 
std::istream& operator>> (std::istream& is, bank& vklad)
{
is >>vklad.family>>vklad.name>>vklad.suname;
   return is;
}
 
 std::ostream& operator<< (std::ostream& os, const group_bank& vklad)
{
   os <<vklad.name_group_bank ;
   return os;
}
std::istream& operator>> (std::istream& is, group_bank& vklad)
{
is >>vklad.name_group_bank ;
   return is;
}
bank::~bank()
{
 
}
bank::bank(const bank& copy)
    :family(copy.family),name(copy.name),suname(copy.suname)
{
 
}
bank& bank::operator=(const bank& equals)
{
    family=equals.family;
    name=equals.name;
    suname=equals.suname;
    return *this;
}
bank.h
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
#ifndef bank_h
#define bank_h
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class bank
{
public:
bank();
~bank();
bank(const bank& copy);
bank& operator=(const bank& equals);
   //вывод объектов в поток
   friend std::ostream& operator<< (std::ostream& os, const bank& stol);
   //чтение объектов из потока
   friend std::istream& operator>> (std::istream& is, bank& stol);
private:
   string family;
   string name;
   string suname;
 
};
 
class group_bank
{
public:
 
 void addbank(bank const& vklad) {
      vklads.push_back(vklad);    }    //функция добавления банка (работает ли? проверить не смог , т.к не додумался , как сделать печать этого вектора )
        vector<bank> vklads;
group_bank();
void show_v(); //тупик
group_bank(const group_bank& copy);
group_bank& operator=(const group_bank& equals);
   //вывод объектов в поток
   friend std::ostream& operator<< (std::ostream& os, const group_bank& stol);
   //чтение объектов из потока
   friend std::istream& operator>> (std::istream& is, group_bank& stol);
private:
     string name_group_bank;
 
};
 
#endif
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2013, 03:55     Вывод вектора на экран (классы)
Посмотрите здесь:

C++ Вывод содержимого вектора на экран
Вывод вектора C++
C++ вывод вектора
C++ Вывод вектора ax+b
C++ Вывод вектора
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vxg
Модератор
 Аватар для vxg
2663 / 1674 / 157
Регистрация: 13.01.2012
Сообщений: 6,250
14.01.2013, 12:06     Вывод вектора на экран (классы) #2
и в чем проблема? для банка есть оператор <<. вектор выводим как
C++
1
2
for (int i = 0; i < vklads.size(); i++)
    os << vklads[i] << std::endl;
lemegeton
 Аватар для lemegeton
2910 / 1339 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
14.01.2013, 13:35     Вывод вектора на экран (классы) #3
Вариант.
C++
1
std::copy(vklads.begin(), vklads.end(), std::ostream_iterator<bank>(std::cout, "\n"));
kvartira
0 / 0 / 0
Регистрация: 29.09.2011
Сообщений: 20
14.01.2013, 15:38  [ТС]     Вывод вектора на экран (классы) #4
lemegeton , vxg Спасибо за ответы.
Цитата Сообщение от vxg Посмотреть сообщение
и в чем проблема? для банка есть оператор <<. вектор выводим как
C++
1
2
for (int i = 0; i < vklads.size(); i++)
    os << vklads[i] << std::endl;
Пытался я так сделать , однако не скомпилировалось из-за ошибки bank.cpp error: 'vklads' was not declared in this scope
Могли бы вы вставить эти строчки в код , туда , куда надо.
vxg
Модератор
 Аватар для vxg
2663 / 1674 / 157
Регистрация: 13.01.2012
Сообщений: 6,250
14.01.2013, 17:00     Вывод вектора на экран (классы) #5
она должна быть в void show_v(). однако... где же vklads? где он у вас определен?
Yandex
Объявления
14.01.2013, 17:00     Вывод вектора на экран (классы)
Ответ Создать тему
Опции темы

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