Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
dimkaok
1 / 1 / 4
Регистрация: 06.03.2013
Сообщений: 128
#1

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

19.04.2013, 13:19. Просмотров 629. Ответов 3
Метки нет (Все метки)

Подскажите, пожалуйста, как получить доступ к функции через объект. Второй день бьюсь,
хотя решение должно быть простое

В классе 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, в котором он определен
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2013, 13:19
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как использовать один и тот же объект в разных классах? (C++):

Как использовать один и тот же case в switch несколько раз?
Как использовать один и тот же case в switch несколько раз?

Один и тот же объект в одном выражении модифицируется несколько раз - неопределенное поведение
Уважаемые форумчане! Недавно столкнулся с интересным на мой взгляд необычным...

Как правильно использовать operator= при наследовании в полиморфных и неполиморфных классах
Доброго времени суток! Изучаю книгу С. Прата "Язык программирования C++. Лекции...

Что значит константный указатель на объект, указатель на константный объект, и как это можно использовать?
Подскажите, что значит константный указатель на объект, указатель на...

Как не писать один и тот же код, для функции, принимающей разные типы данных в качестве аргумента
Проблема такая: есть некая функция. Внутри нее происходят одни и теже...

Как сделать один шаблон для разных типов
Предположим я реализую некоторый шаблонный класс, в котором, ну ради примера к...

3
vxg
Модератор
3231 / 2034 / 319
Регистрация: 13.01.2012
Сообщений: 7,885
19.04.2013, 13:35 #2
вы подключили A.h. в нем определен класс A. класс B не является ни потомком класса A ни содержит в себе объектов класса A. почему вы думаете что можете обратиться к полю класса A которого нет в классе B?
0
Afflicted
Обитатель форума
199 / 182 / 54
Регистрация: 28.10.2012
Сообщений: 543
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()) {}
      }
};
0
dimkaok
1 / 1 / 4
Регистрация: 06.03.2013
Сообщений: 128
19.04.2013, 13:51  [ТС] #4
Все, до меня дошло)))

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

Добавлено через 1 минуту
Цитата Сообщение от Afflicted Посмотреть сообщение
class B: public A
Спасибо, помогло
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.04.2013, 13:51
Привет! Вот еще темы с решениями:

Несколько new на один и тот же указатель
char* p; p = new char; strcpy(p, "june"); cout << p << endl; p = new char;...

Два потока читают один и тот же буфер
void priem(char * g) { for (;;Sleep(500)) { printf("%s\n", g); } } ...

Начинаются и заканчиваются ли строки на один и тот же символ
Пользователь вводит две строки и если они начинаются и заканчиваются на один и...

Чтение и запись в один и тот же файл с CreateFile
Добрый день. необходимо, чтобы можно было открыть файл, произвести из него...


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

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

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