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

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

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

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

19.04.2013, 13:19. Просмотров 569. Ответов 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 несколько раз? - C++
Как использовать один и тот же case в switch несколько раз?

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

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
vxg
Модератор
3162 / 1965 / 220
Регистрация: 13.01.2012
Сообщений: 7,522
19.04.2013, 13:35 #2
вы подключили A.h. в нем определен класс A. класс B не является ни потомком класса A ни содержит в себе объектов класса A. почему вы думаете что можете обратиться к полю класса A которого нет в классе B?
0
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()) {}
      }
};
0
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
Спасибо, помогло
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.04.2013, 13:51
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.04.2013, 13:51
Ответ Создать тему
Опции темы

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