Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.12.2010, 02:37   #1
jec
Пользователь
 
Регистрация: 04.09.2010
Сообщений: 42
По умолчанию проблема в классах

Всем привет, хочу сделать такую фишку в классе
например есть класс A
A->B.c = параметры;
и
A->B.c(параметры);

не знаю как это назвать но вот это мне надо
тоесть что бы класс в классе был
пытался делать по типу:
Код:
class A
{
public:
      A();
      ~A();
};


class B
{
public:
     B();
     ~B();
};


class C
{
public:
      A* c1 = new A();
      B* c2 = new B();
};
но ничего не работает
jec вне форума Ответить с цитированием
Старый 29.12.2010, 02:44   #2
Donatello
Форумчанин
 
Аватар для Donatello
 
Регистрация: 22.12.2010
Сообщений: 109
По умолчанию

Может быть я ошибаюсь но помойму так сделать нельзя(ток начал понимать С++ и программирование вообще), И зачем такое делать в принципе???
А так помойму все что ты написал легче сделать в один класс.
Я бы изменил мир, но бог не дает исходников (c)

И сказал мыслитель, напиши свою проблему на бумаге и ты увидишь свои ошибки.
Donatello вне форума Ответить с цитированием
Старый 29.12.2010, 02:45   #3
jec
Пользователь
 
Регистрация: 04.09.2010
Сообщений: 42
По умолчанию

там просто большие классы и в них много чего, и мне надо сделать класс в классе, да хотябы скажите как называется эта фишка, что бы почитать про такое
jec вне форума Ответить с цитированием
Старый 29.12.2010, 03:37   #4
jec
Пользователь
 
Регистрация: 04.09.2010
Сообщений: 42
По умолчанию

нашел, эта фишка называется наследование, правда совсем не так, но пойдет
jec вне форума Ответить с цитированием
Старый 29.12.2010, 03:39   #5
UltimaBeaR
Форумчанин
 
Аватар для UltimaBeaR
 
Регистрация: 21.12.2010
Сообщений: 199
По умолчанию

Так сделать можно, просто нельзя инициализировать поля класса прямо там где объявил. Инициализировать надо в конструкторе так:
Код:
class C
{
public:
      A* c1;
      B* c2;

    C()
    {
        c = new A();
        c2 = new B();
    }
};
удалять в деструкторе так же (только порядок другой лучше делать)

ЗЫ: можно и через множественное наследование, но этим лучше не злоупотреблять
UltimaBeaR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема в классах jec Общие вопросы C/C++ 3 30.12.2010 11:05
Вопрос о классах (С++) Александр Елис Помощь студентам 5 25.01.2010 20:49
Перечисления в классах (С++) Александр Елис Помощь студентам 1 22.01.2010 17:10
Помощь в классах и функциях. Serror Общие вопросы C/C++ 11 10.10.2009 06:23
реализация стратегии на классах mahsus Общие вопросы C/C++ 1 28.12.2007 10:27