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

Про указатель *, указатель на указатель **, и про new - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 61, средняя оценка - 4.69
Beliy_shum
 Аватар для Beliy_shum
1 / 1 / 0
Регистрация: 10.08.2008
Сообщений: 65
16.08.2008, 15:38     Про указатель *, указатель на указатель **, и про new #1
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
#include "stdafx.h"
class neuro {
  public:
    double *inputs;
    int inputs_count;
    neuro(int uc, double ii )
    {    
        inputs_count=uc;
        inputs = (double *)calloc(inputs_count, sizeof(double));
        for(int i=0; i<inputs_count ;i++)
            inputs[i]=ii;
        
        };
  };
//----------------------------------------------------------------------------
class auction {
  public:
    double *m_old_time;
    neuro **nabor_net;
 
    auction(){
        int neuro_count=5;
        nabor_net = (neuro **)calloc(neuro_count, sizeof(neuro));
        for(int unit=0; unit<neuro_count; unit++ )
            nabor_net[unit] = new neuro(5,0.003);
        }
 
 
    };
int _tmain(int argc, _TCHAR* argv[])
{
    return 0;
}
вот так тоже работает!!!!!!!!!!!!! я раньше делал так!!!!!!!

а ты мне так советуют(так работает):
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
#include "stdafx.h"
class neuro {
  public:
    double *inputs;
    int inputs_count;
    neuro(int uc, double ii )
    {    
        inputs_count=uc;
        inputs = (double *)calloc(inputs_count, sizeof(double));
        for(int i=0; i<inputs_count ;i++)
            inputs[i]=ii;
        
        };
  };
//----------------------------------------------------------------------------
class auction {
  public:
    double *m_old_time;
    neuro *nabor_net;
 
    auction(){
        int neuro_count=5;
        nabor_net = (neuro *)calloc(neuro_count, sizeof(neuro));
        for(int unit=0; unit<neuro_count; unit++ )
            nabor_net[unit] = neuro(5,0.003);
        }
    };
int _tmain(int argc, _TCHAR* argv[])
{
    return 0;
}
вот я не могу понять в чём разница между этими двумя программами????????????????
в чём их отличия?

в продолжение Указатели и элементы класса
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.08.2008, 15:38     Про указатель *, указатель на указатель **, и про new
Посмотрите здесь:

C++ Про указатель на функцию
указатель C++
Указатель на указатель на функцию C++
C++ Указатель на указатель - разница способов
Указатель на указатель C++
C++ Про указатель
указатель C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
XuTPbIu_MuHTAu
Эксперт C++
 Аватар для XuTPbIu_MuHTAu
2219 / 734 / 10
Регистрация: 27.05.2008
Сообщений: 1,507
16.08.2008, 16:02     Про указатель *, указатель на указатель **, и про new #2
В первом случае ты хранишь массив указателей на объекты(и каждый указатель инициализируешь отдельно с помощью new)
Во втором случае ты(вернее,не ты ) хранишь массив объектов. Одним махом выделятеся большой шматок (кусок:-) ) памяти,чтобы они туда все влезли. Поэтому потом оператора нью нет.
Beliy_shum
 Аватар для Beliy_shum
1 / 1 / 0
Регистрация: 10.08.2008
Сообщений: 65
16.08.2008, 16:21  [ТС]     Про указатель *, указатель на указатель **, и про new #3
мля теперь вижу а как лучше?
Beliy_shum
 Аватар для Beliy_shum
1 / 1 / 0
Регистрация: 10.08.2008
Сообщений: 65
01.09.2008, 19:22  [ТС]     Про указатель *, указатель на указатель **, и про new #4
а если я при создании обекта класса использую оператор нью, то имеет ли мне смысл использовать в конструктооре класса функции каллок и маллок?

или нью возвращает указатель на обект а не сам объект?
XuTPbIu_MuHTAu
Эксперт C++
 Аватар для XuTPbIu_MuHTAu
2219 / 734 / 10
Регистрация: 27.05.2008
Сообщений: 1,507
01.09.2008, 20:21     Про указатель *, указатель на указатель **, и про new #5
new возвращает указатель на объект. new вызывает конструктор класса без параметров после выделения памяти.
Beliy_shum
 Аватар для Beliy_shum
1 / 1 / 0
Регистрация: 10.08.2008
Сообщений: 65
03.09.2008, 20:00  [ТС]     Про указатель *, указатель на указатель **, и про new #6
а если конструктора по умолчанию нет тогда что происходит?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.09.2008, 20:09     Про указатель *, указатель на указатель **, и про new
Еще ссылки по теме:

Указатель this C++
C++ Ссылка на указатель на указатель
Освободить указатель на указатель C++
C++ Указатель и снова про русский язык в консоли
Указатель на указатель заполнение матрицы C++

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

Или воспользуйтесь поиском по форуму:
XuTPbIu_MuHTAu
Эксперт C++
 Аватар для XuTPbIu_MuHTAu
2219 / 734 / 10
Регистрация: 27.05.2008
Сообщений: 1,507
03.09.2008, 20:09     Про указатель *, указатель на указатель **, и про new #7
Ничего.Если его нет,то неявно задается пустой конструктор.
Yandex
Объявления
03.09.2008, 20:09     Про указатель *, указатель на указатель **, и про new
Ответ Создать тему
Опции темы

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