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

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

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

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

16.08.2008, 15:38. Просмотров 7294. Ответов 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;
}
вот я не могу понять в чём разница между этими двумя программами????????????????
в чём их отличия?

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

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

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

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

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

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

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

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

или нью возвращает указатель на обект а не сам объект?
XuTPbIu_MuHTAu
Эксперт С++
2224 / 739 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
01.09.2008, 20:21     Про указатель *, указатель на указатель **, и про new #5
new возвращает указатель на объект. new вызывает конструктор класса без параметров после выделения памяти.
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
Еще ссылки по теме:

Приведение любого двумерного массива к типу указатель на указатель - C++
Допустим, есть несколько массивов int arr1; int arr2; int arr3; Какое преобразование нужно сделать, чтобы подобные присвоения...

Функция принимает указатель на void и возвращает указатель на int - C++
Запишите прототип функции, которая принимает указатель на void и возвращает указатель на int.

Указатель на указатель, класс группа - C++
помогите пожалуйста не могу понять что со строкой 312 знаю что с указателем что то не то... но исправить не получается //4. В...

Указатель на указатель - C++
Есть задача: Дана динамическая строка размер массива символов которой точно соответствует строке. написать функцию которая добавляет...


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

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

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