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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.70
4ajok
0 / 0 / 0
Регистрация: 01.12.2009
Сообщений: 9
#1

Класс внутри класса - C++

11.04.2011, 20:42. Просмотров 3162. Ответов 6
Метки нет (Все метки)

Есть 2 класса: большой -А и меньшый-Б.
Класс Б есть параметром класса А.
в большом классе есть процедуры использующие обекты класса Б!

Как зделать что б при инициализации класса А создавался и обект класса Б

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class B
{
//набор параметров!
};
 
class A
{
A(){ B *objB;}//конструктор
B objB;
get_data(B &objB);
//набор параметров!
};
 
void main()
{
A objA;
 
get_data(objB);//<<<< тут ошыбка неизвесный идентификатор 'objB'
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2011, 20:42     Класс внутри класса
Посмотрите здесь:

Класс внутри класса - C++
Добрый вечер! Имею вот что: class Outer { public: double y ; class Inner

Класс внутри класса - возможно ли? - C++
Всем привет! Помогите, пожалуйста, понять следующий текст задания: Непонятен момент про класс date, которым нужно расширить...

Не создается указатель на класс внутри класса - C++
Всем привет! У меня возникла очень интересная ситуация... У меня есть набор классов. Часть классов являются членами других классов. ...

Функция указатель на класс, определенный внутри шаблонного класса - C++
Доброго времени суток! Помогите пожалуйста разобрать со следующим кодом: template &lt;class T&gt; class List{ class Node{ public: ...

Структуру переделать в класс, чтобы массив был внутри класса - C++
есть структура struct CUSTOMER { unsigned short number; char name; char tel; ...

Объект внутри класса. Напишите класс Geo, моделирующий географические координаты на поверхности Земли - C++
Ребят, помогите решить задачу, пожалуйста. Чтт никак не получается :( Напишите класс Geo, моделирующий географические координаты на...

delete внутри класса для самого класса - C++
Доброго времени суток, пишу программу для работы с матрицами. По условию дали лишь несколько библиотек, ни векторов ни cstdio. Для...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
11.04.2011, 21:06     Класс внутри класса #2
В конструкторе, разумеется. В списке инициализации. Многие ими пренебрегают и совсем не используют, а вот в таком случае они незаменимы.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>
 
class A
{
public:
    A(int a = 0):
    _a(a)
    {
    }
 
   int get_a() const
   {
       return _a;
   }
 
private:
    int _a;
};
 
class B
{
public:
    B(int b = 0):
    _b(b)
    {
    }
 
    int get_b() const
    {
        return _b.get_a();
    }
 
private:
    A _b;
};
 
int main()
{
    B b(10);
 
    std::cout << b.get_b() << std::endl;
 
    return 0;
}
4ajok
0 / 0 / 0
Регистрация: 01.12.2009
Сообщений: 9
11.04.2011, 21:15  [ТС]     Класс внутри класса #3
так ниче не выйдет)))
я упростил когда вписывал......
там оч большая иэрархия и десятки параметров.......
все оказалось намного проще
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class B
{
//набор параметров!
};
 
class A
{
A(){ B *objB;}//конструктор
B objB;
get_data();
//набор параметров!
};
 
void main()
{
A objA;
 
get_data();
}
Всетаки обект внутренего класса создался! ошыбка была в другом!
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
11.04.2011, 21:49     Класс внутри класса #4
Цитата Сообщение от 4ajok Посмотреть сообщение
так ниче не выйдет)))
Да ну? Только что скомпилировал и запустил - вышло!

Добавлено через 1 минуту
И ещё - объект-то создастся таким образом, и совершенно ни к чему создавать непонятно кому нужный указатель с тем же именем в конструкторе. Но таким образом объект создастся лишь с конструктором по-умолчанию, конструктор с параметрами получится вызвать только так, как я показал выше.
4ajok
0 / 0 / 0
Регистрация: 01.12.2009
Сообщений: 9
11.04.2011, 21:55  [ТС]     Класс внутри класса #5
Цитата Сообщение от silent_1991 Посмотреть сообщение
Да ну? Только что скомпилировал и запустил - вышло!

Добавлено через 1 минуту
И ещё - объект-то создастся таким образом, и совершенно ни к чему создавать непонятно кому нужный указатель с тем же именем в конструкторе. Но таким образом объект создастся лишь с конструктором по-умолчанию, конструктор с параметрами получится вызвать только так, как я показал выше.
Ето не означала что у вас неправильный код!
К томуже я спрашывал как реализовать создание обекта внутреннего класса в конструкторе глобального, а ваш код демонстрирует роботу с указателями на сок я понял!
Из-за сложности проекта ваш подход не даст результатов!
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
11.04.2011, 21:58     Класс внутри класса #6
Цитата Сообщение от 4ajok Посмотреть сообщение
роботу с указателями
После этого я не уверен, что вы способны адекватно оценить сложность проекта. Покажите мне, где в моём коде работа с указателями, и почему "мой" (а на самом деле общепризнанный и иногда единственный) подход вдруг на сложных проектах перестал давать результаты?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.04.2011, 16:07     Класс внутри класса
Еще ссылки по теме:

Заполнение вектора класса внутри самого класса - C++
class A { private: int a; public: A() { a = 0; }; A get(vector &lt;A&gt;* vec)

Видимость экземпляра класса внутри класса - C++
Здравствуйте! Пытаюсь вывести openCV видео в QT виджете. На данный момент в слоте обновления картинки инициализирую класс cv::VideoCapture...

Инициализация класса A внутри класса B - C++
заранее извиняюсь, наверняка подобное было на одной из 1000 страниц=)... есть 2 класса //собственно первый класс class matrix ...

Структура внутри класса - C++
Есть такой вопрос, целесообразно ли делать вот так: class StudentGroup { private: struct Student { string name; string...

Перегрузка внутри класса - C++
Есть класс Points, который использует обычные стандартные функции. Здесь для примера написал две функции(работают со значениями переменных...


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

Или воспользуйтесь поиском по форуму:
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
12.04.2011, 16:07     Класс внутри класса #7
Цитата Сообщение от 4ajok Посмотреть сообщение
A(){ B *objB;}//конструктор
Улыбнуло.
Yandex
Объявления
12.04.2011, 16:07     Класс внутри класса
Ответ Создать тему
Опции темы

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