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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
simplepilot
1 / 1 / 0
Регистрация: 22.07.2007
Сообщений: 366
#1

Видимость классов - C++

16.06.2008, 12:46. Просмотров 1431. Ответов 12
Метки нет (Все метки)

Как сделать что бы один класс мог работать с классом
который объявлен после него но использует его.
C++
1
2
3
4
5
6
7
8
9
class Cmd1
{
    Cmd1* var1;
}
 
class Cmd2
{
    Cmd2* var1;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2008, 12:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Видимость классов (C++):

Разработать иерархию классов, демонстрирующее работу с коллекцией объектов разных классов - C++
Задание: Разработать в соответствии с индивидуальным заданием иерархию классов и приложение, демонстрирующее работу с коллекцией объектов...

Вынести методы из классов Panel и PictureBox (явная реализация методов базовых абстрактных классов) - C++
Тема: Множественное наследование. Явная реализация методов базовых абстрактных классов. Как вынести методы из классов Panel и...

Реализация отношения классов типа двунаправленная ассоциация, UML, порядок объявления классов, неполный класс - C++
Доброго времени суток! Осваивая UML, решил реализовать отношение двунаправленной ассоциации по диаграмме: У одного владельца...

Преобразования объектов классов в объекты других классов - C++
Задача типа обмен валют. Нужно конвертировать старый фунт стерлинг(фунт, шиллинг и пенсы) в доллары и обратно, по курсу 1 фунт = 50...

Наследование классов. Копирование производных классов - C++
Здравствуйте всем, у меня такой вопрос: написал код #include "stdafx.h" class A //Создаем класс А { int mA; ...

Видимость в классах - C++
Дана программа #include<iostream> using namespace std; class a {protected: int a1; public: void fc() ...

12
Dima2002
0 / 0 / 0
Регистрация: 15.06.2008
Сообщений: 9
16.06.2008, 20:01 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class B;
 
class A
{
 B * ptr;
//...
};
 
class B
{
 A
 * ptr;
//...
};
0
Andir
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 145
17.06.2008, 09:27 #3
Привет !

и вообще юзай хедеры ... полезная штука ...

Удачи, Эндир !
0
simplepilot
1 / 1 / 0
Регистрация: 22.07.2007
Сообщений: 366
17.06.2008, 13:44  [ТС] #4
У меня с этими h-файлами вообще полная засада. Что то я не могу разобраться как их создавать. В книжках про это что то не пишут. Меня уже достало делать 'третий класс' который будет первых два 'подсасывать' и между собой конектить.
P.S А что у тебя с ником (ты его зачем русифицировал)?
0
Andir
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 145
17.06.2008, 14:46 #5
Привет !

Да лень было раскладку переключать ... (да и чтоб знали как правильно произносить ;-))
Про .h - файлы можно прочитать наверно в каждой книжке по c++.
Переноси в .h файлы определения функций, классов и т.д., а в файлах .cpp реализацию их делай
C++
1
2
3
4
5
6
7
// file: filename.h
class MyClass
{
public:
MyClass();
~MyClass();
};
C++
1
2
3
4
5
6
7
8
9
10
11
// file: filename.сpp
#include 'filename.h'
 
MyClass::MyClass()
{
// какой-то код конструктора
}
MyClass::~MyClass()
{
// какой-то код деструктора
}
Всё очень просто и доходчиво. Хочешь юзать два класса, подключай два хедера или определяй в одном хедере оба...

Удачи Andir !
0
simplepilot
1 / 1 / 0
Регистрация: 22.07.2007
Сообщений: 366
17.06.2008, 14:56  [ТС] #6
Я так и делал, но что то пробелму того что один клас может юзать другой который тоже его юзает это по моему не решат. Но что то вспоминаю про указатели нам в универе говорили что указатели вставлять можно. Но он то блин вообще такой тип не узнаёт. Говорит что блин за гавно, нет такого типа ClassB и ведь не врёт, он же объявлен после класа А и компилятрор ещё до туда не дочитал...
0
simplepilot
1 / 1 / 0
Регистрация: 22.07.2007
Сообщений: 366
17.06.2008, 15:01  [ТС] #7
Я так и делал, но что то пробелму того что один клас может юзать другой который тоже его юзает это по моему не решат. Но что то вспоминаю про указатели нам в универе говорили что указатели вставлять можно. Но он то блин вообще такой тип не узнаёт. Говорит что блин за гавно, нет такого типа ClassB и ведь не врёт, он же объявлен после класа А и компилятрор ещё до туда не дочитал...
0
Dima2002
0 / 0 / 0
Регистрация: 15.06.2008
Сообщений: 9
17.06.2008, 15:32 #8
Слушай это какой же ты универ имеешь в виду? Или ты не программист?
Тебе же объяснили, все просто:
C++
1
2
3
4
5
6
7
8
9
10
// First.h: interface for the CFirst class.
class CSecond;  // ВАЖНО!!!!!!!!!!
 
class CFirst  
{
public:
    CFirst();
    virtual ~CFirst();
    CSecond* m_pSecond;
};
C++
1
2
3
4
5
6
7
8
9
10
// Second.h: interface for the CSecond class.
class CFirst;  // ВАЖНО!!!!!!!!!!
 
class CSecond
{
public:
    CSecond();
    virtual ~CSecond();
    CFirst* m_pFirst;
};
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
// First.cpp: implementation of the CFirst class.
#include 'First.h'
#include 'Second.h'             // ВАЖНО!!!!!!!!!!
 
CFirst::CFirst()
{
    m_pSecond = new CSecond;
}
 
CFirst::~CFirst()
{
    if ( m_pSecond ) delete m_pSecond;
}
C++
1
2
3
4
5
6
7
8
9
// Second.cpp: implementation of the CSecond class.
#include 'Second.h'
#include 'First.h'             // ВАЖНО!!!!!!!!!!
 
CSecond::CSecond()
{}
 
CSecond::~CSecond()
{}
0
simplepilot
1 / 1 / 0
Регистрация: 22.07.2007
Сообщений: 366
17.06.2008, 16:30  [ТС] #9
Универ МРТИ (БГУИР) в Минске - радиотех. Я нормально знал Си пока учился. Но потом я писал сначала на Delphi а потом на Java. Так что Си++ успел забыть. Тут вот взялся тексовый редакор писать на Api с подсветкой синтаксиса. Уже многое написал - по крайней мере статически синтаксис подсвечен и редактор работает (но очень хреново). Что бы упростить управление рещил сделать систему команд то есть документ создаёт команду а эта команда получает ссылку на документ, меняет его и записывается в UndoList. Но возникла проблема что и документ должен знать тип 'команда' и команда тип 'документ'
0
Dima2002
0 / 0 / 0
Регистрация: 15.06.2008
Сообщений: 9
17.06.2008, 17:31 #10
Блин, как тесен мир!!!!
Я тоже окончил БГУИР (в 1997 году).
А ты?
0
simplepilot
1 / 1 / 0
Регистрация: 22.07.2007
Сообщений: 366
17.06.2008, 18:01  [ТС] #11
Я в 1998 ФВТ-ВМС. Ты сейчас в Минске работаешь ? я да.
0
Dima2002
0 / 0 / 0
Регистрация: 15.06.2008
Сообщений: 9
17.06.2008, 18:22 #12
Пока в Минске, но активно стремлюсь сделать ноги. Тут мой сосед (рабочие столы рядом стояли) (тоже РТИшник),вместе со мной кончавший уже 2 месяца как в Нью-Йорке. Стартовая зарплата - 50К $ в год. Неплохо, да? А кончал я ФВТ-ПОВТ. Но я после окончания 3 года херней маялся (бизнесом занимался), потом надоело. Вот сейчас активно английский, Вижуалку и оракул юзаю, готовлюсь...
0
simplepilot
1 / 1 / 0
Регистрация: 22.07.2007
Сообщений: 366
17.06.2008, 19:35  [ТС] #13
Ясно. Ладно давай лучше по мылу а то типа из темы выбились
simplepilot@aport2000.ru
0
17.06.2008, 19:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2008, 19:35
Привет! Вот еще темы с ответами:

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

Видимость переменной - C++
Доброго времени суток. Нужна небольшая консультация по программе. У меня программа состоит из нескольких методов в каждом из которых...

Видимость переменных - C++
Ребят такой вопрос, Есть у меня класс А и наследуемый от него класс B, в классе B есть паблик переменная C Можно ли вызвать эту переменну...

static и глобальная видимость - C++
прочитал что если писать static int a = 5; то a будет видно ото всюду но оказалосбь это не так... void a(); int main() { ...


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

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

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