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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 61, средняя оценка - 4.69
Beliy_shum
1 / 1 / 0
Регистрация: 10.08.2008
Сообщений: 65
#1

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

16.08.2008, 15:38. Просмотров 7312. Ответов 6
Метки нет (Все метки)

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;
}
вот я не могу понять в чём разница между этими двумя программами????????????????
в чём их отличия?

в продолжение Указатели и элементы класса
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.08.2008, 15:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Про указатель *, указатель на указатель **, и про new (C++):

Как получить ссылку на указатель или указатель на указатель в массиве? - C++
В процессе реализации сортировки пузырьком натолкнулся на такую проблему: как поменять значения указателей, передаваемых в функцию. Если...

Про указатель - C++
Почему не работает когда я пишу вот так вот: if(*s) printf(&quot;тут&quot;); и работает когда пишу вот так вот: if(*s=='\0') printf(&quot;тут&quot;);? Ведь это...

Про указатель на функцию - C++
Народ, у меня есть стандартная функция (создание потоков), она требует чтобы ей 3-м параметром передали указатель на функцию (void*...

Указатель и снова про русский язык в консоли - C++
Здравствуйте.Указатель не возвращает русские буквы. Пишу что то на русском, возвращает набор символов, на анг все норм. Как можно...

Функция, принимающая указатель и число байт и выделяющая память под указатель - C++
Здравствуйте. Задача легкая, но почему-то завис Нужно написать функцию, принимающую указатель и число байт и выделяющую память под...

Функция, получающая указатель на обычную функцию, получает указатель на метод класса - C++
Здравтсвуйте. Имеется вопрос по указателям на методы класса. Допустим, есть функция( f ), которая принимает указатель на функцию и...

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

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

Как правильно удалять выделенную память под указатель на указатель? - C++
есть код #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; using namespace std; void sort_1(const...

Реализация двоичных деревьев поиска: Зачем в параметрах функции используется указатель на указатель - C++
Всем привет, встретил в книге такой пример добавления узла в дерево: typedef struct tree { int data; tree *left, *right,...

Передача умного указателя в функцию принимающую указатель на указатель - C++
Итак имеется функция со следующим параметром: HRESULT __stdcall Function(SomeClass **param); В случае, когда создаём обычный...

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


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

Или воспользуйтесь поиском по форуму:
7
Yandex
Объявления
03.09.2008, 20:09
Ответ Создать тему
Опции темы

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