Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
7 / 5 / 5
Регистрация: 28.09.2016
Сообщений: 76
1

Как правильно вызвать методы, чтобы передать весь массив объектов

02.10.2016, 22:09. Просмотров 412. Ответов 10
Метки нет (Все метки)

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
#include <iostream>
using namespace std;
 
class f
{
public:
    int a;
    f()
    {
        a = 0;
    }
    f(int a)
    {
        a = a;
    }
 
    void some()
    {
        cout << "some()" << endl;
        cout << this[8].a << endl;
    }
    void nextSome()
    {
        cout << "nextSome()" << endl;
        cout << this[5].a << endl;
    }
 
};
 
int main()
{
    f mas[10];
    for (int i = 0; i < 10; i++)
        mas[i] = f(i);
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.10.2016, 22:09
Ответы с готовыми решениями:

Как правильно передать массив объектов пользовательского типа в функцию?
Доброго всем, пишу впервые пишу огромную программу - игру и столкнулся с проблемой, которую так сам...

Как правильно передать динамический массив в функцию, увеличивающую его размер, чтобы изменения сохранились
Извиняюсь за совсем нубский вопрос, похожее не нашел. Простая учебная задача - написать функцию,...

Как правильно создать и вызвать конструктор для массива объектов?
Сам класс class Planet{ public: string name; protected: double diameter; private: int...

Как проинициализировать весь массив объектов?
// lab7.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot;...

10
249 / 200 / 96
Регистрация: 13.12.2015
Сообщений: 1,037
02.10.2016, 22:15 2
Sifors, читайте:
функции Си,
указатели и функции,
массивы Си
либо C++ создать vector и передавать в функцию или метод
0
7 / 5 / 5
Регистрация: 28.09.2016
Сообщений: 76
02.10.2016, 22:40  [ТС] 3
Я говорю конкретно про данный случай, что нужно написать?
0
191 / 127 / 52
Регистрация: 19.01.2010
Сообщений: 518
02.10.2016, 22:50 4
Цитата Сообщение от Sifors Посмотреть сообщение
this[8].a
что вы хотели этим сказать? Оо
0
7 / 5 / 5
Регистрация: 28.09.2016
Сообщений: 76
02.10.2016, 23:04  [ТС] 5
Вывод поля восьмого объекта.
0
6914 / 5979 / 2709
Регистрация: 14.04.2014
Сообщений: 25,504
02.10.2016, 23:06 6
У тебя каждый объект хранит одно значение.
0
191 / 127 / 52
Регистрация: 19.01.2010
Сообщений: 518
02.10.2016, 23:11 7
Цитата Сообщение от Sifors Посмотреть сообщение
Вывод поля восьмого объекта.
это вы смещаетесь от адреса объекта в памяти на 8 байт...

может чето типа этого?
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
#include <iostream>
using namespace std;
 
class f
{
public:
    int a;
    f()
    {
        a = 0;
    }
    f(int a)
    {
        this->a = a;
    }
 
    void some()
    {
        cout << "some()" << endl;
        cout << this->a << endl;
    }
    void nextSome()
    {
        cout << "nextSome()" << endl;
        cout << this->a << endl;
    }
 
};
 
int main()
{
    f mas[10];
    for (int i = 0; i < 10; i++)
        mas[i] = f(i);
 
    for (int i = 0; i < 10; i++) 
       mas[i].some();
 
    return 0;
}
1
7 / 5 / 5
Регистрация: 28.09.2016
Сообщений: 76
02.10.2016, 23:46  [ТС] 8
Да именно так, спасибо. Хорошо что вы поняли, что я хочу сделать

Добавлено через 27 минут
Я могу иметь в методе some() доступ к другим объектам?
0
191 / 127 / 52
Регистрация: 19.01.2010
Сообщений: 518
02.10.2016, 23:52 9
Если в метод some() передать другой объект, то да
1
7 / 5 / 5
Регистрация: 28.09.2016
Сообщений: 76
03.10.2016, 00:15  [ТС] 10
C++
1
2
3
4
void some(f * mas)
{...}
 
mas[5].some(mas);
это так будет выглядеть?
0
191 / 127 / 52
Регистрация: 19.01.2010
Сообщений: 518
03.10.2016, 00:22 11
если хотите менять передаваемый объект внутри метода, то передавать по ссылке:
C++
1
2
3
4
5
6
void some(f  &mas)
{
    mas.a = 123;
}
 
mas[5].some(mas);
если менять его не планируете, то по константной ссылке:
C++
1
2
3
4
5
6
7
void some(const f  &mas)
{
    mas.a = 123;      // так уже не прокатит
    int val = mas.a;  // а читать из него можем
}
 
mas[5].some(mas);
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.10.2016, 00:22

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как передать весь массив в вектор?
вот код. как масив arr передать все значения в вектор value. Думал так но не запускается. #include...

Создать массив из созданных объектов класса Студент. Для каждого проинициализировать поля и вызвать методы
Написать программу, которая содержит класс с полями и методами, характеризующего отдельного...

Создать массив из созданных объектов класса Студент. Для каждого проинициализировать поля и вызвать методы
Написать программу, которая содержит класс с полями и методами, характеризующего отдельного...

В общем как заменить в подборе объектов и так чтобы не сохранял в массив объектов а в лист? с#
Вот код.public static RaycastHit rch; int _my_podbor_switch; public GameObject...


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

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

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