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

Указатели и элементы класса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Маленькая буква x http://www.cyberforum.ru/cpp-beginners/thread11268.html
Недавно начал изучать С++. Встретил следующий код, не понимаю как он работает. Если кто подскажет, почему из-за буквы "x" выполняется конструктор и деструктор, то буду очень признателен, спасибо. #include "stdafx.h" #include "iostream.h" class TEMP { private: int a; public:
C++ ворпос по поводу пробелов в строке А как мне в своем коде изменить чтобы вместо «_» при наборе предложения можно ставить пробелы, пытаюсь вводить через консоль с пробелами: выводит и работает только с одним словом #include <iostream> #include <cstring> using namespace std; class Line { private: http://www.cyberforum.ru/cpp-beginners/thread11252.html
Непонятные условия в некоторых примерах C++
Читаю книгу, и там пример: ... int my_func(); ... int main() { ... if(my_func()) { cout << ...
Свитчер C++
Написал подобного рода прогу. int main() { int nomber; cout << "Choise the nomber of exercise(1-10, and other nomber to exit): "; cin >> nomber;
C++ Тип char и указатели http://www.cyberforum.ru/cpp-beginners/thread11231.html
Вопрос... Тип может хранить только символы, или строки тоже? Если только символы, то почему этот код работает?: ... void my_func(char* my_string) { for(int x = 0; x < 10; x++) { std::cout << *(my_string + x) << "\n"; }
C++ Иероглифы при чтении из файла Привожу код, в котором создаю, файл записываю в него данные. Затем пытаюсь их считать, выводит иероглифы... Что не так?. Спасибо. #include "stdafx.h" #include <iostream> #include <fstream> #include <cstring> using namespace std; int main() { ofstream txtfile( "Testfile.txt" ); подробнее

Показать сообщение отдельно
Beliy_shum
1 / 1 / 0
Регистрация: 10.08.2008
Сообщений: 65
16.08.2008, 15:33  [ТС]     Указатели и элементы класса
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;
}
вот в этой программе я выделяю под объкты типа нейро память определённого размера.
зачем мне конструктор без параметров ведь он не сможет выделить память под обекты нейро так как размер 1одного обектв нейро очень сильно зависито параметров(в тысячи раз)

у тебя в конструкторе без параметров
C++
1
2
3
        neuro(){
        inputs = new double[4];
        };
ты выделяешь фиксированное количество памяти. для 4 чисел.

а что будет если тебе потом туда понадобится запихать обект нейро у которого должнобыть 100000 чисел?
по этому я выделяю память для обектов нейро исходя из того кокой обект какого размера мне нужно создать.
я делаю это каллоком.

а вот зачем
C++
1
nabor_net[unit] = new neuro(5,0.003);
я так делаю понять вообще не могу. раньше работало. но только если
C++
1
neuro **nabor_net;
Добавлено через 6 минут 17 секунд
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#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;
}[/CODE]
 
вот так тоже работает!!!!!!!!!!!!! я раньше делал так!!!!!!!
 
а ты мне так советуешь(так работает):
[CODE]#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;
}
вот я не могу понять в чём разница между этими двумя программами????????????????
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru