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

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

Войти
Регистрация
Восстановить пароль
 
Chainyk
15 / 15 / 1
Регистрация: 24.08.2010
Сообщений: 94
#1

Переменная в динамической памяти - C++

24.08.2010, 13:48. Просмотров 470. Ответов 6
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
class SimpleCircle
{
public:
    SimpleCircle ();            //Basic constructor
    SimpleCircle (int radius);  //Constructor with parameters
    void SetRadius (int r);     //Radius set function
    void operator++ () {++itsRadius;}
    int operator++ (int);       //Postfix operator
    int * itsRadius = new int;
};
Почему у меня в последней строке две ошибки? Как мне разместить переменную itsRadius в динамической памяти? Простите если вопрос глупый
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.08.2010, 13:48     Переменная в динамической памяти
Посмотрите здесь:

Вопросы по динамической памяти. - C++
У меня вопросы по работе с динамической памятью. Пожалуйста, помогите разобраться с этой темой. - чем отличается free() от delete? и...

Теория по динамической памяти - C++
Предположим, применяется оператор new в форме для массива: p=new int ;. n ведь может быть и большим. Может n==1000000? Где запоминается,...

перераспределение динамической памяти - C++
дан двумерный массив 3х5 выделить динамически память под него, затем перераспределить ее в массив 5х3, затем удалить(выделить и удалить там...

Удаление new из динамической памяти - C++
Здравствуйте, у меня есть следующее присвоение: sign->numb = new int; Мне нужно от него избавиться в конце программы, но delete...

Массив в динамической памяти - C++
какая разница между int *x=new int(10); и int *x=new int; ?

Распределение динамической памяти! - C++
У нас есть 2 упорядоченных массива. Надо создать 3-ий упорядоченный массив который состоит из первых двух. #include <stdio.h> ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,446
24.08.2010, 13:59     Переменная в динамической памяти #2
Chainyk, выделяй память в конструкторе
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
24.08.2010, 14:21     Переменная в динамической памяти #3
это вам не java, нельзя инициализировать в описании
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,446
24.08.2010, 16:39     Переменная в динамической памяти #4
Пример:
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
class SimpleCircle
{
 
public:
 
        SimpleCircle ()                        //Basic constructor
        {
                itsRadius = new int();
        }
        SimpleCircle (int radius)      //Constructor with parameters
        {
                itsRadius = new int(radius);
        }
        ~SimpleCircle()  // Destructor
        {
                delete itsRadius;
        }
        void SetRadius (int r);         //Radius set function
        void operator++ () {++itsRadius;}
        int operator++ (int);           //Postfix operator
 
private:
 
        int * itsRadius;
};
CyBOSSeR
Эксперт C++
2300 / 1670 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
24.08.2010, 17:32     Переменная в динамической памяти #5
Chainyk, зачем Вы используте динамическую память для хранения поля типа int?
Просто, если Вы используете указатели в классе, Вы должно позаботится о реализации конструктора копирования, оператора присваивания, да и деструктора очищающего память я тоже не вижу. Храните поле по значению, это гораздо безопаснее, да и памяти расходуется меньше.
Nameless One
24.08.2010, 17:34
  #6

Не по теме:

CyBOSSeR, это видать пример из какой-то книжки, потому что я его уже здесь недавно видел

CyBOSSeR
24.08.2010, 17:36     Переменная в динамической памяти
  #7

Не по теме:

Nameless One, в таком случае автору нужно задуматся над тем, что он пишет.

Yandex
Объявления
24.08.2010, 17:36     Переменная в динамической памяти
Ответ Создать тему
Опции темы

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