Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.01.2020, 15:49   #1
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
Вопрос Нужен способ получение данных между (!) двумя классами.

Есть класс CL1 и CL2. Они содержат поля. CL1 должен получить поле CL2, а CL2 поле CL1. У вас идеи?
Мaкс вне форума Ответить с цитированием
Старый 29.01.2020, 17:17   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

std::swap?
waleri вне форума Ответить с цитированием
Старый 29.01.2020, 17:23   #3
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
std::swap
Привет. Не обменять, сейчас покажу...
Код:
class CL1 {
//Поля
};
class CL2 {
//Поля
};
Нужно получить доступ к нестатическим полям класса CL1, которые объявлены в CL2 и наоборот.
Мaкс вне форума Ответить с цитированием
Старый 29.01.2020, 17:49   #4
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

https://en.wikipedia.org/wiki/Mutato...od#C++_example
waleri вне форума Ответить с цитированием
Старый 29.01.2020, 18:08   #5
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Не работает код, не знаю как исправить. Цель объяснить?
Код:
// ConsoleApplication2.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы.
//

#include <iostream>
using namespace std;
class CLGENERAL;
class CL1 {
public:
    int x = 5;
    void f() { CLGENERAL::obj2.x = 12; }
};
class CL2 {
public:
    int x = 9;
};
class CLGENERAL {
public:
    static CL1 obj1;
    static CL2 obj2;
};
int main()
{
    setlocale(LC_ALL, "Russian");
    cout << "CL1.x: " << CLGENERAL::obj1.x << ", CL2.x: " << CLGENERAL::obj2.x << "\nf(). CL2.x: " << CLGENERAL::obj2.x;
    system("pause");
    return 0;
}

Последний раз редактировалось Мaкс; 29.01.2020 в 18:32.
Мaкс вне форума Ответить с цитированием
Старый 29.01.2020, 20:35   #6
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Вынесите CL1::f() в cpp файл или просто вынесите из тела класса и перенесите после определения класса CLGENERAL.
waleri вне форума Ответить с цитированием
Старый 30.01.2020, 08:25   #7
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 947
По умолчанию

Мaкс, не понятно, что тебе нужно. Зачем они вообще статические? Сделай глобальными


Цитата:
Сообщение от Мaкс Посмотреть сообщение
нестатическим полям класса CL1, которые объявлены в CL2
так не бывает Поле класса A нельзя объявить в классе B
Алексей1153 вне форума Ответить с цитированием
Старый 30.01.2020, 11:57   #8
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

Цитата:
Сообщение от Алексей1153 Посмотреть сообщение
Сделай глобальными
Блин, как я мог забыть про глобальные переменные...
Paris_Tuileries_Garden_Facepalm_statue.jpg
Спасибо!
Мaкс вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужен простейший способ получить Random между 1 и -1 sameuser Общие вопросы по Java, Java SE, Kotlin 5 07.09.2017 07:43
Интеграция данных между двумя ИС Alexbmgn Помощь студентам 9 27.11.2014 10:58
, передачу данных между двумя процессами Oyoume Помощь студентам 0 29.11.2012 00:58
Импорт (перенос) данных между двумя базами reihtmonbern Помощь студентам 1 11.11.2011 13:24
Нужен пример на Dilphi, перемещение строки между двумя listbox из одного в другой MaHTpug Помощь студентам 1 17.06.2010 21:25