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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
dimkaok
1 / 1 / 0
Регистрация: 06.03.2013
Сообщений: 128
#1

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

19.04.2013, 13:19. Просмотров 566. Ответов 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, в котором он определен
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2013, 13:19     Как использовать один и тот же объект в разных классах?
Посмотрите здесь:

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

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

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

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

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

Генератор паролей создает один и тот же пароль - C++
Собственно вопрос, почему он генерирует одно и тоже каждый раз? const int length = 10; // длина пароля. char chars = {...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vxg
Модератор
3140 / 1942 / 214
Регистрация: 13.01.2012
Сообщений: 7,429
19.04.2013, 13:35     Как использовать один и тот же объект в разных классах? #2
вы подключили A.h. в нем определен класс A. класс B не является ни потомком класса A ни содержит в себе объектов класса A. почему вы думаете что можете обратиться к полю класса A которого нет в классе B?
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 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()) {}
      }
};
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.04.2013, 13:51     Как использовать один и тот же объект в разных классах?
Еще ссылки по теме:

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

Возвращает один и тот же результат. Найти произведение ряда - C++
Нужно подсчитать: \prod_{k=1}^{n} \frac{{(1-x)}^{k+1}+1}{{((k-1)!+1)}^{2}} Написал программу, но проблема в том, что она выводит...

Двоичный поиск в массиве выдает один и тот же ответ - C++
выдаёт один и тот же ответ(( #include <iostream> #include <iomanip> using namespace std; int binarySearch(int , int, int, int,...

Определить, сколько занятий ведет один и тот же преподаватель - C++
В расписании шесть строк, в каждой из которых описан предмет, преподаватель, номер группы, день недели, часы занятия, аудитория....

Определить, сколько занятий ведет один и тот де преподаватель - C++
В расписании шесть строк, в каждой из которых описан предмет, преподаватель, номер группы, день недели, часы занятия, аудитория....

Как использовать функцию класса в другом классе (ни один из классов не наследует другой)? - C++
функция в классе в котором она прописана объявлена как паблик. void auction::rvectoroldtime(int oldtime1, double low, double high ) { ...


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

Или воспользуйтесь поиском по форуму:
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     Как использовать один и тот же объект в разных классах?
Ответ Создать тему
Опции темы

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