C++ Получить переменные класса

Новичок
Статус
Оффлайн
Регистрация
11 Дек 2022
Сообщения
1
Реакции[?]
0
Поинты[?]
0
Существует класс, в котором хранится много информации. Эта информация обрабатывается в разных функциях и уже чем-то заполняется. Мне необходимо получить доступ к переменным классам. Для этого через функцию, где используется класс, беру указатель. Теперь вопрос, можно ли сразу получить ВСЕ переменные класса? Нашел способ по отдельности брать указатель класса + смещение и тогда можно будет изменить переменную, ну это не то, может быть можно сразу все переменные получить?
 
Участник
Статус
Оффлайн
Регистрация
5 Окт 2017
Сообщения
784
Реакции[?]
173
Поинты[?]
11K
Верни указатели на нужные переменные в виде структуры.
C++:
struct myStruct
{
    public:
    int* a;
    int* b;
};

class myClass
{
    public:
    myStruct& getData()
    {
        myStruct myObject;
        myObject.a = &first;
        myObject.b = &second;
        return myObject;
    }
    private:
    int first;
    int second;
};
Пример довольно простой, который мог бы прийти в голову. Наверное ты это хотел получить
 
Последнее редактирование:
std::X$$V::Z::_Func_impl_no_alloc
Пользователь
Статус
Оффлайн
Регистрация
30 Мар 2019
Сообщения
389
Реакции[?]
103
Поинты[?]
1K
Существует класс, в котором хранится много информации. Эта информация обрабатывается в разных функциях и уже чем-то заполняется. Мне необходимо получить доступ к переменным классам. Для этого через функцию, где используется класс, беру указатель. Теперь вопрос, можно ли сразу получить ВСЕ переменные класса? Нашел способ по отдельности брать указатель класса + смещение и тогда можно будет изменить переменную, ну это не то, может быть можно сразу все переменные получить?
Может ты уже разобрался, но всё же попрошу показать что ты именно хочешь получить. И вообще не пытайся что-то объяснять, с терминологией у тебя плохо, вместо этого сразу кидай примерный код того, что ты хочешь сделать
 
Пользователь
Статус
Оффлайн
Регистрация
5 Июл 2022
Сообщения
1,003
Реакции[?]
86
Поинты[?]
23K
Существует класс, в котором хранится много информации. Эта информация обрабатывается в разных функциях и уже чем-то заполняется. Мне необходимо получить доступ к переменным классам. Для этого через функцию, где используется класс, беру указатель. Теперь вопрос, можно ли сразу получить ВСЕ переменные класса? Нашел способ по отдельности брать указатель класса + смещение и тогда можно будет изменить переменную, ну это не то, может быть можно сразу все переменные получить?
C++:
class  Hui {
public:
    int pizda;
    int chlen;
};

int main() {
    Hui h;
    h.chlen;
    h.pizda;
}
а вообще я обезьяна :SMOrc:
 
Забаненный
Статус
Оффлайн
Регистрация
2 Мар 2021
Сообщения
1,083
Реакции[?]
406
Поинты[?]
1K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
coder of the year
Участник
Статус
Оффлайн
Регистрация
13 Мар 2019
Сообщения
886
Реакции[?]
266
Поинты[?]
4K
Существует класс, в котором хранится много информации. Эта информация обрабатывается в разных функциях и уже чем-то заполняется. Мне необходимо получить доступ к переменным классам. Для этого через функцию, где используется класс, беру указатель. Теперь вопрос, можно ли сразу получить ВСЕ переменные класса? Нашел способ по отдельности брать указатель класса + смещение и тогда можно будет изменить переменную, ну это не то, может быть можно сразу все переменные получить?
нет способа получить доступ ко всем переменным класса сразу. можно только обратиться к каждой из них по отдельности.

если у тебя есть указатель на объект класса, то можно написать функцию, которая будет обходить все члены класса и выполнять с ними какие-то действия. НО, такой подход может быть неэффективным, если у класса много членов (твой случай), потому что при каждом вызове этой функции будут выполняться много ненужных операций. в таком случае тебе проще всего написать функцию, которая будет обрабатывать только те члены класса, которые необходимо изменить, можно рассмотреть вариант с использованием цикла, который будет перебирать все члены класса и выполнять нужные действия .
 
Сверху Снизу