Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
sandrwe
0 / 0 / 0
Регистрация: 08.02.2014
Сообщений: 25
#1

Цикл для обьектов - C++

09.02.2014, 21:42. Просмотров 363. Ответов 15
Метки нет (Все метки)

Здрасти. У меня есть много обьектов класса przedmiot. Какой цикл может в main.cpp помочь исполнить функцию выписывания "p_wypisz" для всех одновременно?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
list lista_przedmiotow;
    przedmiot p1("1I", "Podstawy programowania", "wyklad");
    przedmiot p2("2I", "Podstawy programowania", "laboratorium");
    przedmiot p3("3I", "Podstawy programowania", "projekt");
    przedmiot p4("4I", "Matematyka dyskretna", "wyklad");
    przedmiot p5("5I", "Matematyka dyskretna", "cwiczenie");
    przedmiot p6("6I", "Architektura system komputerowych", "wyklad");
    przedmiot p7("7I", "Architektura system komputerowych", "laboratorium");
    przedmiot p8("1T", "Geografia", "wyklad");
    przedmiot p9("2T", "Geografia", "cwiczenie");
    przedmiot p10("3T", "Turyzm i biznes hotelowy", "wyklad");
    przedmiot p11("4T", "Turyzm i biznes hotelowy", "cwiczenie");
    przedmiot p12("5T", "Turyzm i biznes hotelowy", "projekt");
    przedmiot p13("6T", "Plywanie", "DL");
    przedmiot p14("1K", "Kosmetologia", "wyklad");
    przedmiot p15("2K", "Kosmetologia", "cwiczenie");
    przedmiot p16("3K", "Kosmetyczny biznes", "wyklad");
    przedmiot p17("4K", "Kosmetyczny biznes", "cwiczenie");
    przedmiot p18("5K", "Kosmetyczny biznes", "Projekt");
    p1.p_wypisz();
Чтобы "p1.p_wypisz()" выполнилось не только для p1, а для всех обьектов przedmiot.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2014, 21:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Цикл для обьектов (C++):

Использование потокового итератора для пользовательских обьектов - C++
Надо с помощю итератора ofstream_iterator вывести содержимое множины, в которой есть обьекты пользовательського типа. Вот что я пока...

Быстрая сортировка для массива обьектов пользовательского класса - C++
Насколько я знаю в Си++ есть встроеная ф-ция быстрой сортировки. Как нею воспользоваться для сортировки массива обьектов моего класса? Хочу...

Поиск по классу с полями char* для массива обьектов class a[i] - C++
Есть класс: aero.h #ifndef AERO_H #define AERO_H #include <string> using namespace std; class aero

Как вернуть массив обьектов для дальнейшей работы с ним? - C++
#include <iostream> class Ex { public: Ex(char *);//конструктор ~Ex();//деструктор (пока не используется) Ex...

Написать функцию для класса, возращающую данный из вектора обьектов класса по итератору вектора - C++
День=добрый как написать функцию для класса возращающую данный из вектора обьектов класса по итератору вектора?? стока запроса: ...

Почему не работает цикл while для заполнения и do while для вывода массива? - C++
//--------------------------------------------------------------------------- #include <vcl.h> #include <conio.h> #include...

15
Enotniy
96 / 95 / 14
Регистрация: 15.01.2014
Сообщений: 283
09.02.2014, 21:51 #2
sandrwe, создайте list<przedmiot> L обьектов ваших (добавляйте L.push_back(p1);), а потом цикл
C++
1
2
for ( auto it : L)
  it.p_wypisz()
0
sandrwe
0 / 0 / 0
Регистрация: 08.02.2014
Сообщений: 25
09.02.2014, 22:04  [ТС] #3
Что я делаю не так?
0
Миниатюры
Цикл для обьектов  
Enotniy
96 / 95 / 14
Регистрация: 15.01.2014
Сообщений: 283
09.02.2014, 22:08 #4
sandrwe, весь код пожалуйста

Добавлено через 59 секунд
sandrwe, если ваш компилятор не поддерживает c++11 то вам придётся сделать цикл с итераторами
0
sandrwe
0 / 0 / 0
Регистрация: 08.02.2014
Сообщений: 25
09.02.2014, 22:11  [ТС] #5
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
#include <iostream>
#include "student.h"
#include "kierunek.h"
#include "przedmiot.h"
#include "list.h"
#include "ocena.h"
 
using namespace std;
 
int main()
{
    list lista_przedmiotow;
    przedmiot p1("1I", "Podstawy programowania", "wyklad");
    przedmiot p2("2I", "Podstawy programowania", "laboratorium");
    przedmiot p3("3I", "Podstawy programowania", "projekt");
    przedmiot p4("4I", "Matematyka dyskretna", "wyklad");
    przedmiot p5("5I", "Matematyka dyskretna", "cwiczenie");
    przedmiot p6("6I", "Architektura system komputerowych", "wyklad");
    przedmiot p7("7I", "Architektura system komputerowych", "laboratorium");
    przedmiot p8("1T", "Geografia", "wyklad");
    przedmiot p9("2T", "Geografia", "cwiczenie");
    przedmiot p10("3T", "Turyzm i biznes hotelowy", "wyklad");
    przedmiot p11("4T", "Turyzm i biznes hotelowy", "cwiczenie");
    przedmiot p12("5T", "Turyzm i biznes hotelowy", "projekt");
    przedmiot p13("6T", "Plywanie", "DL");
    przedmiot p14("1K", "Kosmetologia", "wyklad");
    przedmiot p15("2K", "Kosmetologia", "cwiczenie");
    przedmiot p16("3K", "Kosmetyczny biznes", "wyklad");
    przedmiot p17("4K", "Kosmetyczny biznes", "cwiczenie");
    przedmiot p18("5K", "Kosmetyczny biznes", "Projekt");
    lista_przedmiotow.push_back(p1);
    for (auto it : lista_przedmiotow)
    {
            it.p_dodaj();
    }
    return 0;
}

П.С. Использую CodeBlocks
0
Megabar
22 / 22 / 3
Регистрация: 01.12.2013
Сообщений: 93
09.02.2014, 22:14 #6
sandrwe, попробуйте
C++
1
2
for (std::list<przedmiot>::iterator it=mylist.begin(); it != mylist.end(); ++it)
    it->p_dodaj();
Добавлено через 1 минуту
Цитата Сообщение от sandrwe Посмотреть сообщение
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
#include <iostream>
#include "student.h"
#include "kierunek.h"
#include "przedmiot.h"
#include "list.h"
#include "ocena.h"
 
using namespace std;
 
int main()
{
    list lista_przedmiotow;
    przedmiot p1("1I", "Podstawy programowania", "wyklad");
    przedmiot p2("2I", "Podstawy programowania", "laboratorium");
    przedmiot p3("3I", "Podstawy programowania", "projekt");
    przedmiot p4("4I", "Matematyka dyskretna", "wyklad");
    przedmiot p5("5I", "Matematyka dyskretna", "cwiczenie");
    przedmiot p6("6I", "Architektura system komputerowych", "wyklad");
    przedmiot p7("7I", "Architektura system komputerowych", "laboratorium");
    przedmiot p8("1T", "Geografia", "wyklad");
    przedmiot p9("2T", "Geografia", "cwiczenie");
    przedmiot p10("3T", "Turyzm i biznes hotelowy", "wyklad");
    przedmiot p11("4T", "Turyzm i biznes hotelowy", "cwiczenie");
    przedmiot p12("5T", "Turyzm i biznes hotelowy", "projekt");
    przedmiot p13("6T", "Plywanie", "DL");
    przedmiot p14("1K", "Kosmetologia", "wyklad");
    przedmiot p15("2K", "Kosmetologia", "cwiczenie");
    przedmiot p16("3K", "Kosmetyczny biznes", "wyklad");
    przedmiot p17("4K", "Kosmetyczny biznes", "cwiczenie");
    przedmiot p18("5K", "Kosmetyczny biznes", "Projekt");
    lista_przedmiotow.push_back(p1);
    for (auto it : lista_przedmiotow)
    {
            it.p_dodaj();
    }
    return 0;
}

П.С. Использую CodeBlocks
у вас добавляется только один элемент
C++
1
lista_przedmiotow.push_back(p1);
надо добавить все p1, p2, ...
0
sandrwe
0 / 0 / 0
Регистрация: 08.02.2014
Сообщений: 25
09.02.2014, 22:18  [ТС] #7
Ругается что list не есть членом std.
0
Enotniy
96 / 95 / 14
Регистрация: 15.01.2014
Сообщений: 283
09.02.2014, 22:20 #8
sandrwe,
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
#include <iostream>
#include <list>
#include "student.h"
#include "kierunek.h"
#include "przedmiot.h"
#include "list.h"
#include "ocena.h"
 
using namespace std;
 
int main()
{
    list<przedmiot> lista_przedmiotow;
    przedmiot p1("1I", "Podstawy programowania", "wyklad");
    przedmiot p2("2I", "Podstawy programowania", "laboratorium");
    przedmiot p3("3I", "Podstawy programowania", "projekt");
    przedmiot p4("4I", "Matematyka dyskretna", "wyklad");
    przedmiot p5("5I", "Matematyka dyskretna", "cwiczenie");
    przedmiot p6("6I", "Architektura system komputerowych", "wyklad");
    przedmiot p7("7I", "Architektura system komputerowych", "laboratorium");
    przedmiot p8("1T", "Geografia", "wyklad");
    przedmiot p9("2T", "Geografia", "cwiczenie");
    przedmiot p10("3T", "Turyzm i biznes hotelowy", "wyklad");
    przedmiot p11("4T", "Turyzm i biznes hotelowy", "cwiczenie");
    przedmiot p12("5T", "Turyzm i biznes hotelowy", "projekt");
    przedmiot p13("6T", "Plywanie", "DL");
    przedmiot p14("1K", "Kosmetologia", "wyklad");
    przedmiot p15("2K", "Kosmetologia", "cwiczenie");
    przedmiot p16("3K", "Kosmetyczny biznes", "wyklad");
    przedmiot p17("4K", "Kosmetyczny biznes", "cwiczenie");
    przedmiot p18("5K", "Kosmetyczny biznes", "Projekt");
    lista_przedmiotow.push_back(p1);
    lista_przedmiotow.push_back(p2);
    lista_przedmiotow.push_back(p3);
    lista_przedmiotow.push_back(p4);
    lista_przedmiotow.push_back(p5);
    lista_przedmiotow.push_back(p6);
    lista_przedmiotow.push_back(p7);
    lista_przedmiotow.push_back(p8);
    lista_przedmiotow.push_back(p9);
    lista_przedmiotow.push_back(p10);
    lista_przedmiotow.push_back(p11);
    lista_przedmiotow.push_back(p12);
    lista_przedmiotow.push_back(p13);
    lista_przedmiotow.push_back(p14);
    lista_przedmiotow.push_back(p15);
    lista_przedmiotow.push_back(p16);
    lista_przedmiotow.push_back(p17);
    lista_przedmiotow.push_back(p18);
    for (auto it : lista_przedmiotow)
    {
        it.p_dodaj();
    }
    return 0;
}
вроде бы последняя версия кодеблока поддеживает последний стандарт

Добавлено через 36 секунд
sandrwe, библиотеку лист надо подключить отдельно
0
sandrwe
0 / 0 / 0
Регистрация: 08.02.2014
Сообщений: 25
09.02.2014, 22:23  [ТС] #9
Как?
0
Megabar
22 / 22 / 3
Регистрация: 01.12.2013
Сообщений: 93
09.02.2014, 22:23 #10
Цитата Сообщение от sandrwe Посмотреть сообщение
Ругается что list не есть членом std.
воспользуйтесь подключением хедеров принятыми в С++
C++
1
2
#include <list>
using namespace std;
0
Enotniy
96 / 95 / 14
Регистрация: 15.01.2014
Сообщений: 283
09.02.2014, 22:25 #11
sandrwe, я написал вам пример, он должен работать
1
sandrwe
0 / 0 / 0
Регистрация: 08.02.2014
Сообщений: 25
09.02.2014, 22:34  [ТС] #12
Но разве можно подключить этот лист так?
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
#pragma once
#include<vector>
#include "student.h"
#include "ocena.h"
#include "kierunek.h"
#include "przedmiot.h"
 
using namespace std;
 
class list
{
protected:
    vector<student> s_list;
    vector<ocena> o_list;
    vector<kierunek> k_list;
    vector<przedmiot> p_list;
public:
    list();
    ~list();
    void s_dodaj(student a);
    void s_zapisz();
    void s_czytaj();
    void s_wypisz();
    void o_dodaj(ocena o);
    void o_zapisz();
    void o_czytaj();
    void o_wypisz();
    void k_dodaj(kierunek k);
    void k_zapisz();
    void k_czytaj();
    void k_wypisz();
        void p_dodaj(przedmiot p);
    void p_zapisz();
    void p_czytaj();
    void p_wypisz();
};
0
Enotniy
96 / 95 / 14
Регистрация: 15.01.2014
Сообщений: 283
09.02.2014, 22:37 #13
sandrwe, я не понимаю что вы написали, вы пытаетесь переопределить класс лист? зачем? не нравится лист используйте vector
0
Megabar
22 / 22 / 3
Регистрация: 01.12.2013
Сообщений: 93
09.02.2014, 22:38 #14
sandrwe, а класс przedmiot что делает?

Ваш класс list совпадает с именем list из std, используйте std::list
0
sandrwe
0 / 0 / 0
Регистрация: 08.02.2014
Сообщений: 25
09.02.2014, 22:40  [ТС] #15
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#pragma once
#include "kierunek.h"
#include <string>
 
class przedmiot:public kierunek
{
protected:
    char p_id[10];
    char p_nazwa[30];
    char p_forma[10];
public:
    przedmiot();
    przedmiot(char pid[10], char pnazwa[30], char pforma[10]);
    char* p_get_id(){return p_id;};
    char* p_get_nazwa(){return p_nazwa;};
    char* p_get_forma(){return p_forma;};
    void p_wypisz();
    ~przedmiot();
};
0
09.02.2014, 22:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2014, 22:40
Привет! Вот еще темы с ответами:

массив обьектов - C++
здравствуйте! подскажите пожалуйста, что такое обьект массивов? ( искал в учебниках и в интернете тоже,но ничего написанного об этом не...

Синтаксис классов и обьектов - C++
Всем привет, занимаюсь созданием программы работы с векторами, дак вот, как правильно написать такой код, который бы создавал n-ое...

Количество обьектов в файле - C++
У меня есть метод, который достает из файла поля обьектов и обрабатывает в соответствии с определенными параметрами. Так вот эти поля...

Заполнить коллекцию обьектов - C++
Добрий день, нуждаюсь в помощи. Первый раз столкнулся с тем, чтобы создать коллекцию Студентов. Создал vector&lt;Student&gt; obj, но не вижу...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.