Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
infernocucumber
0 / 0 / 0
Регистрация: 26.05.2016
Сообщений: 35
1

Классы С++, получить доступ из одного класса к элементам другого

26.07.2016, 14:13. Просмотров 771. Ответов 6
Метки нет (Все метки)

Здравствуйте!

Объясните пожалуйста, вот имеется у меня два класса,например вот такие:
C++
1
2
3
4
5
Class A
{
private:
int i;
}
C++
1
2
3
4
5
Class B
{
public:
void myFunc(){i=10};
}
Как мне корректно получить из класса B доступ к элементу класса A?

Заранее спасибо за помощь и подсказки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.07.2016, 14:13
Ответы с готовыми решениями:

Классы-друзья (использование данных одного класса из другого)
Зарание спс ))) Я лаймер в С++ но учусь чтоб исправиться. И куда как не к вам...

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

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

Как получить доступ к массиву из другого класса?
Подскажите, есть такой код: switch(o_field.fieldArray) { // Код } ...

Как получить доступ к элементам формы из созданного класса?
Всем доброго времени суток!:help: Скажите, пожалуйста, как мне обратиться к...

6
shilko2013
249 / 226 / 184
Регистрация: 02.04.2016
Сообщений: 886
Завершенные тесты: 1
26.07.2016, 14:21 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
class A
{
private:
    int i;
public:
    friend class B;
};
class B
{
public:
    void myFunc( A * obj) { obj->i = 10; }
};
1
infernocucumber
0 / 0 / 0
Регистрация: 26.05.2016
Сообщений: 35
26.07.2016, 14:41  [ТС] 3
Не очень понятно объяснил, попробую по другому:

C++
1
2
3
4
5
class A
{
public:
int i;
}
C++
1
2
3
4
5
class B
{
public:
void myFunc(){как правильно тут обратиться к i?};//вариант A::i не помог
}
C++
1
2
3
4
5
6
7
8
int main()
{
A a;
B b;
a.i=11;//например
b->myFunc();//хочу изменить значение i
return 0;
}
Вот, может теперь понятней мой вопрос будет, спасибо.
0
shilko2013
249 / 226 / 184
Регистрация: 02.04.2016
Сообщений: 886
Завершенные тесты: 1
26.07.2016, 14:48 4
Этот код фигня
0
bullock
1 / 1 / 1
Регистрация: 19.08.2015
Сообщений: 27
26.07.2016, 16:37 5
Можно в классе B создать ссылку на класс A
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
class B { 
A myA;
public: 
B (A &inA){  myA =  inA;}
void myFunc(){ myA.i = 12345;}
}
int main()
 { A a; 
    B b(a); 
   a.i=11;
   b.myFunc();
  return 0;
 }
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
7051 / 3354 / 454
Регистрация: 04.12.2011
Сообщений: 9,325
Записей в блоге: 5
26.07.2016, 20:33 6
Цитата Сообщение от infernocucumber Посмотреть сообщение
Как мне корректно получить из класса B доступ к элементу класса A?
Сначала нужно понять, как получить доступ к элементу класса А из любого другого места (кроме дружественных функций и классов, так как в Вашем варианте их нет). Сразу станет ясно, что это не возможно. Элементами класса являются статические поля, а i это поле экземпляра. Без экземпляра нет поля и нет доступа. Дело осложняется тем, что если есть экземпляр, то поле приватно и получить к нему доступ нельзя. Напишите открытые методы доступа или откройте поле. Или объявите дружественную функцию или класс в котором есть метод принимающий ссылку или указатель на объект. Этот вариант показал shilko2013.
Цитата Сообщение от infernocucumber Посмотреть сообщение
b->myFunc();//хочу изменить значение i
Это говорит, что и без классов есть что читать.
0
fire_Rising
10 / 11 / 7
Регистрация: 11.05.2016
Сообщений: 113
27.07.2016, 16:03 7
infernocucumber, вам стоит лучше разобраться с указателями
0
27.07.2016, 16:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.07.2016, 16:03

Может ли объемлющий класс иметь неограниченный доступ к элементам вложенного класса? А вложенный класс — к элементам объемлющего?
Ответ как бы знаю(нет , да). но наверное я что-то не так понимаю, т.к....

Вывод данных одного массива по элементам другого
Имеется массив MD=1 0 2; Имеется массив структур строк V.name = AA AB AC; ...

Массив объектов одного класса как поле другого класса
Доброе время суток. Мне тут в универе задали лабу, нужно создать класс полем...


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

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

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