С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 27.03.2013
Сообщений: 21
1

Доступ из одного класса в другой

28.03.2013, 18:02. Показов 1633. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Мучаюсь полдня. Помогите. Суть такая. Есть два класса PictureForm и LevelForm. Как из класса LevelForm вызвать функцию класса PictureForm так, чтобы в этой функции я мог использовать переменный класса PictureForm. Точнее использовать то я могу, но их значения обнуляются.
В классе PictureForm инициализирую переменную (в PictureForm.h она объявлена : int temp; )
C++
1
temp = 100;
И как теперь её использовать в функции из другого класса? Пробовал так:
1) вызываю функцию ConstructPicture класса PictureForm:
C++
1
2
PictureForm test;
test.ConstructPicture();
2)Теперь в этой функции пытаюсь вывести значение переменной temp:
C++
1
2
3
4
void PictureForm::ConstructPicture()
{
AppLogDebug("Invoked with value: %d", temp);
}
Выводится 0;
Помогите!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.03.2013, 18:02
Ответы с готовыми решениями:

Получить доступ с одного класса к элементу второго класса
Добрый вечер, я сейчас работаю с XNA Game Studio 4.0, каркас программы аналогичен .Net , пишу свою...

Передать данные одного обьекта класса в другой обьект на другой форме
Здравствуйте прочитал вот это https://www.cyberforum.ru/windows-forms/thread110436.html но так и...

Есть два класса. Как из одного класса перенести данные в другой класс?
Есть два класса : планета и диспетчер планет. Диспетчер имеет информацию о планетах: их названия,...

Как передать входящее значение одного метода класса на возврат в другой метод того же класса?
Я самый новейший новичок. Помогите.Как передать входящее значение (количество еды) метода feed...

8
Неэпический
18112 / 10699 / 2062
Регистрация: 27.09.2012
Сообщений: 26,944
Записей в блоге: 1
28.03.2013, 18:06 2
C++
1
2
3
4
5
6
7
8
void PictureForm::ConstructPicture(const LevelForm & temp)
{
AppLogDebug("Invoked with value: %d", temp);
}
//...
LevelForm temp = 100;
PictureForm test;
test.ConstructPicture(temp);
0
0 / 0 / 0
Регистрация: 27.03.2013
Сообщений: 21
28.03.2013, 18:26  [ТС] 3
Но у меня переменная temp создается в классе PictureForm . Когда я из класса LevelForm вызываю функцию ConstructPicture(она находится в классе PictureForm ) и пытаюсь в ней использовать эту переменную(Она определена в PictureForm.h ) , то выдает значение 0.
0
13 / 13 / 6
Регистрация: 28.03.2013
Сообщений: 22
28.03.2013, 18:39 4
Если нужно обратится к переменной напрямую то ее нужно обявить как:
C++
1
public: int tmp;
Тогда с метода другого класа можно сделать так:
C++
1
2
3
4
void PictureForm::ConstructPicture(const LevelForm & someObj)
{
AppLogDebug("Invoked with value: %d", someObj.temp);
}
Можно также сделать статическую переменную:
C++
1
public: static int temp = 10;
Тогда код метода будет виглядеть так:
C++
1
2
3
4
void PictureForm::ConstructPicture()
{
AppLogDebug("Invoked with value: %d", LevelForm::temp);
}
0
0 / 0 / 0
Регистрация: 27.03.2013
Сообщений: 21
28.03.2013, 18:49  [ТС] 5
C++
1
2
3
4
void PictureForm::ConstructPicture(const LevelForm & someObj)
{
AppLogDebug("Invoked with value: %d", someObj.temp);
}
А как тогда эту функцию вызвать.
0
1 / 1 / 2
Регистрация: 13.01.2013
Сообщений: 71
28.03.2013, 20:29 6
а сделать дружественный клас или функцию?
0
0 / 0 / 0
Регистрация: 27.03.2013
Сообщений: 21
28.03.2013, 21:29  [ТС] 7
как вариант, но я не совсем понимаю, как это сделать. Я в двух классах объявил дружественную функцию(например x). Как теперь с помощью этой функции изменить из класса A значение класса B
0
1 / 1 / 2
Регистрация: 13.01.2013
Сообщений: 71
28.03.2013, 22:37 8
C++
1
2
3
4
friend int x(PictureForm &o)
{
return o.temp;
}
Добавлено через 12 минут
как дружественный классс
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class PictureForm
{
//...
friend class LevelForm;
//...
};
 
class LevelForm
{
public:
int func(PictureForm & o)
{return o.temp}
};
вроде должно
0
0 / 0 / 0
Регистрация: 27.03.2013
Сообщений: 21
28.03.2013, 22:39  [ТС] 9
ща пробну..
Хех, объясню проблему конкретнее: Есть две формы. Мне надо,(например) чтобы при нажатии на кнопку на форме 1 изменялся фон на форме2. На формах при инициализации устанавливаю фон.
Тоесть класс Forma1 и Forma2; Можно сделать так. Forma2 t; t.Set..Bitmap(...);Все идет,т.е добавить новое могу, а удалить то, чтобы создании при инициализации не могу.
0
28.03.2013, 22:39
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.03.2013, 22:39
Помогаю со студенческими работами здесь

Доступ одного класса к данным другого
Здравствуйте. Интересует следующий вопрос: Есть два класса, "Вектор" и "Матрица". Их реализации...

Доступ к членам одного класса с другого
Есть три файла: A.cpp: #include "B.cpp" class AA { int A; public: AA(int a) { A = a;

Не получается получить доступ из одного VLAN в другой
У меня не получается получить доступ из одного VLAN в другой. Из 10 в 20-ый и наоборот. Подскажите...

Как из одного класса получить доступ к другому
Нужна подсказка новичку. Начал изучить C#. Тренируюсь в Visual Studio 2008. Создал два файла *.cs...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Блоги программистов
Подброка решений задач на Python
IT_Exp 06.01.2025
Целью данной подборки является предоставление возможности ознакомиться с различными задачами и их решениями на Python, что может быть полезно как для начинающих, так и для опытных программистов. . . .
С чего начать программировать микроконтроллер­­ы
raxper 06.01.2025
Введение в мир микроконтроллеров Микроконтроллеры стали неотъемлемой частью современного мира, окружая нас повсюду: от простых бытовых приборов до сложных промышленных систем. Эти маленькие. . .
Из чего собрать игровой компьютер
inter-admin 06.01.2025
Сборка игрового компьютера требует особого внимания к выбору комплектующих и их совместимости. Правильно собранный игровой ПК не только обеспечивает комфортный геймплей в современных играх, но и. . .
Обновление сайта www.historian.b­y
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
Модель полного двоичного сумматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list): s=^y] p=x and y for i in range(1,len(x)): s. append((x^y)^p) p=(x and y)or(p and (x or y)) return s x=list() y=list()
Это мы не проходили, это нам не задавали...(аси­­­­­­­­­­­­­­хро­н­н­ы­й счётчик с управляющим сигналом задержки).
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
Применение компонентов PrimeVue в Vue.js 3 на TypeScript
BasicMan 04.01.2025
Введение в PrimeVue и настройка окружения PrimeVue представляет собой мощную библиотеку компонентов пользовательского интерфейса для Vue. js 3, которая предоставляет разработчикам богатый набор. . .
Как стать Senior developer
cpp_developer 04.01.2025
В современной индустрии разработки программного обеспечения позиция Senior Developer представляет собой не просто следующую ступень карьерной лестницы, а качественно новый уровень профессионального. . .
Что известно о дате выхода Windows 12 и чего от нее ждать
IT_Exp 04.01.2025
В мире технологий постоянно происходят изменения, и операционные системы не являются исключением. Windows 11, выпущенная в октябре 2021 года, принесла множество инноваций и улучшений, но. . .
Что новенького в .NET Core 9
Programming 04.01.2025
Обзор ключевых изменений в . NET Core 9 Платформа . NET Core продолжает активно развиваться, и версия 9 представляет собой значительный шаг вперед в эволюции этой технологии. Новый релиз. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru