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

передача параметра в класс - C++

Восстановить пароль Регистрация
 
dserp18
 Аватар для dserp18
0 / 0 / 0
Регистрация: 20.01.2013
Сообщений: 74
Записей в блоге: 2
28.06.2013, 11:48     передача параметра в класс #1
в методе я вывожу поля класса по условию, как передавать в класс переменную х, и использовать х в условии метода age>x,можно ли в цикле осуществлять переборку экземпляров?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
using namespace std;
class Human{   
      public:
      int age,weight;
      string name;      
      void myprint(){if (age>30) 
          cout<<"age " <<age <<" name " <<name <<" weight " <<weight <<endl;
           }   };
      int main(){
          Human a,b;
          a.age=32;
          a.name="Вася";
          a.weight=40;
          b.age=10;
          b.name="Петя";
          b.weight=25;
          a.myprint();
          b.myprint();
          system("pause");
          }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.06.2013, 11:48     передача параметра в класс
Посмотрите здесь:

Передача файла в качестве параметра C++
C++ Передача параметра в потоки
Передача параметра по ссылке C++
C++ передача параметра
передача параметра в функцию C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
abit
 Аватар для abit
260 / 259 / 33
Регистрация: 03.02.2013
Сообщений: 709
28.06.2013, 12:19     передача параметра в класс #2
какая переменная x? у вас в коде её не наблюдаю...
или вы намекаете чтобы в if (age>30) было if (age>x)?
можно пойти такими путями:
C++
1
2
3
4
5
6
....
void myprint(const int x){if (age>x)
...
          a.myprint(23);
          b.myprint(30);
...
либо
C++
1
2
3
4
5
6
7
8
9
...
      string name;      
      static int p_age=30;
      void myprint(){if (age>p_age) 
...
          a.p_age=25; (сработает и для объекта b)
          a.myprint();
          b.myprint();
...
можно ли в цикле осуществлять переборку экземпляров?
внутри класса - нет, вне класса, где экземпляры созданы - можно, создав соответствующий массив/вектор этих объектов
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
28.06.2013, 12:23     передача параметра в класс #3
Цитата Сообщение от dserp18 Посмотреть сообщение
использовать х в условии метода age>x
C++
1
void myprint(int old){if (age>old)
Цитата Сообщение от dserp18 Посмотреть сообщение
можно ли в цикле осуществлять переборку экземпляров?
Заведите список или массив элементов и перебирайте его.
dserp18
 Аватар для dserp18
0 / 0 / 0
Регистрация: 20.01.2013
Сообщений: 74
Записей в блоге: 2
28.06.2013, 13:07  [ТС]     передача параметра в класс #4
ухм спасибо ) то есть в main нужно создать массив экземпляров класса и тогда можно их перебирать в цикле. а как создать такой массив?
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
28.06.2013, 13:35     передача параметра в класс #5
Цитата Сообщение от dserp18 Посмотреть сообщение
а как создать такой массив?
вариантов может быть несколько.
1. Обычный массив:
C++
1
2
3
4
5
6
7
Human people[2];
people[0].age=32;
people[0].name="Вася";
people[0].weight=40;
people[1].age=10;
people[1].name="Петя";
people[1].weight=25;
2. Стандартный контейнер. Например std::vector:
C++
1
2
3
4
5
6
7
8
9
10
std::vector<Human> people;
Human h;
h.age=32;
h.name="Вася";
h.weight=40;
people.push_back(h); // добавляем первого
h.age=10;
h.name="Петя";
h.weight=25;
people.push_back(h); // добавляем второго
Но вообще-то, не помешает создать нормальный конструктор(ы) для класса Human и прочие необходимые функции. Иначе работать с классом будет неудобно.
Yandex
Объявления
28.06.2013, 13:35     передача параметра в класс
Ответ Создать тему
Опции темы

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