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

Создание указателя на объект и выделение памяти - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
Matlabist
2 / 2 / 0
Регистрация: 28.11.2010
Сообщений: 98
06.02.2011, 08:31     Создание указателя на объект и выделение памяти #1
Не пойму почему при добавлении одного указателя выдает ошибку
Этот код работает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class A
{
public:
    class B
    {
    public:
        int x;
        B(int y) {
            x=y;
        };
    };
    B* b1;//,b2;
    A() {
        b1=new B(2);
    };
};
Этот не работает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class A
{
public:
    class B
    {
    public:
        int x;
        B(int y) {
            x=y;
        };
    };
    B* b1,b2;
    A() {
        b1=new B(2);
    };
};
error C2512: 'B' : no appropriate default constructor available

Как b2 могло на что-то повлиять?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
06.02.2011, 08:52     Создание указателя на объект и выделение памяти #2
Matlabist, Ну дык b2 тоже должен инициализироваться. Нету ведь конструктора по умолчанию
Matlabist
2 / 2 / 0
Регистрация: 28.11.2010
Сообщений: 98
06.02.2011, 09:01  [ТС]     Создание указателя на объект и выделение памяти #3
Цитата Сообщение от ForEveR Посмотреть сообщение
Matlabist, Ну дык b2 тоже должен инициализироваться. Нету ведь конструктора по умолчанию
Так тоже выдает ошибку
error C2512: 'B' : no appropriate default constructor available
error C2679: binary '=' : no operator defined which takes a right-hand operand of type 'class A::B *' (or there is no acceptable conversion)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class A
{
public:
    class B
    {
    public:
        int x;
        B(int y) {
            x=y;
        };
    };
    B* b1,b2;
    A() {
        b1=new B(2);
        b2=new B(2);
    };
};
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
06.02.2011, 09:10     Создание указателя на объект и выделение памяти #4
Matlabist, Так b2 не указатель...

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class A
{
public:
        class B
        {
        public:
                int x;
                B(int y) {
                        x=y;
                };
        };
        B* b1, *b2;
        A() {
                b1=new B(2);
                b2=new B(3);
        };
};
Yandex
Объявления
06.02.2011, 09:10     Создание указателя на объект и выделение памяти
Ответ Создать тему
Опции темы

Текущее время: 21:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru