Форум программистов, компьютерный форум CyberForum.ru

Как использовать один и тот же объект в разных классах? - C++

Восстановить пароль Регистрация
 
dimkaok
 Аватар для dimkaok
1 / 1 / 0
Регистрация: 06.03.2013
Сообщений: 128
19.04.2013, 13:19     Как использовать один и тот же объект в разных классах? #1
Подскажите, пожалуйста, как получить доступ к функции через объект. Второй день бьюсь,
хотя решение должно быть простое

В классе A создал объект o_field класса C, т.к. здесь мне этот объект
понадобился в первый раз:

C++
1
2
3
4
5
6
7
8
// A.h
#include "B.h"
class A {
    
  public:
 
      C    o_field;
};
Здесь определена функция, к которой далее мне нужно получить доступ через
объект o_field:

C++
1
2
3
4
5
6
7
8
9
// C.h
class C {
    
  public:
    
      int getCurrentArrayElement() {
               // какой-то код
          }
};
Теперь объект o_field (не новый, а тот-же, что в классе A) нужен здесь:

C++
1
2
3
4
5
6
7
8
9
10
// B.h
#include "A.h"  // т.к. там объявлен o_field
class B {
 
  public:     
 
      void sleep(){             
         if(o_field.getCurrentArrayElement()) {} // Error: идентификатор "o_field" не определен
          }
};
Как мне получить доступ к функции getCurrentArrayElement()?

Добавлено через 3 минуты
И почему пишет, что идентификатор "o_field" не определен, я-же подключил файл A.h, в котором он определен
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2013, 13:19     Как использовать один и тот же объект в разных классах?
Посмотрите здесь:

C++ Как сделать один шаблон для разных типов
Что значит константный указатель на объект, указатель на константный объект, и как это можно использовать? C++
C++ Определить, сколько занятий ведет один и тот де преподаватель
C++ Определить, сколько занятий ведет один и тот же преподаватель
Двоичный поиск в массиве выдает один и тот же ответ C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vxg
Модератор
 Аватар для vxg
2669 / 1680 / 158
Регистрация: 13.01.2012
Сообщений: 6,281
19.04.2013, 13:35     Как использовать один и тот же объект в разных классах? #2
вы подключили A.h. в нем определен класс A. класс B не является ни потомком класса A ни содержит в себе объектов класса A. почему вы думаете что можете обратиться к полю класса A которого нет в классе B?
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 538
19.04.2013, 13:38     Как использовать один и тот же объект в разных классах? #3
Например, так:

C++
1
2
3
4
5
6
7
8
9
class B: public A
{
  public:     
 
      void sleep()
      {             
            if(o_field.getCurrentArrayElement()) {}
      }
};
dimkaok
 Аватар для dimkaok
1 / 1 / 0
Регистрация: 06.03.2013
Сообщений: 128
19.04.2013, 13:51  [ТС]     Как использовать один и тот же объект в разных классах? #4
Все, до меня дошло)))

Цитата Сообщение от vxg Посмотреть сообщение
почему вы думаете что можете обратиться к полю класса A которого нет в классе B?
Я думал, что подключив A в классе B, я получу доступ к Public-членам класса A

Добавлено через 1 минуту
Цитата Сообщение от Afflicted Посмотреть сообщение
class B: public A
Спасибо, помогло
Yandex
Объявления
19.04.2013, 13:51     Как использовать один и тот же объект в разных классах?
Ответ Создать тему
Опции темы

Текущее время: 22:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru