Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Zapomni
0 / 0 / 0
Регистрация: 02.06.2013
Сообщений: 17
1

Иницилизация двух одномерных динамических массивов в классе

02.04.2017, 19:05. Просмотров 394. Ответов 4
Метки нет (Все метки)

[C++ Error] Unit1.h(43): E2451 Undefined symbol 'W' выдает такую ошибку, вопрос почему на точно так же объявленный массив P[] не выдает ошибку, а на массив W[] идет ошибка?
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
//---------------------------------------------------------------------------
 
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
private:    // User declarations
public:     // User declarations
        __fastcall TForm1(TComponent* Owner);
};
 class Perseptron
 {
   float *P,Y,Yi,ei,Zij;
   int Size;
   public:
    Perseptron(int SizeOfVector)
    {
      Size = SizeOfVector;
      float *W = new float[Size];
      float *P = new float[Size];
 
    }
    float Calculation()
    {
      bool answer = false;
      for(int i = 0;i < Size;i++)   // цикл заполнения массива вектора входных P
      {
       float p = rand()%2;
        if(p != 0)
          P[i] = 1;
        else
          P[i] = 0;
      }
      for(int i = 0;i < Size;i++)    // цикл заполнения массива весов W
      {
        W[i] = rand() % 1 + 0.1;
      }
      while(anser == true)
      {
 
      }
    }
 };
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2017, 19:05
Ответы с готовыми решениями:

Обработка одномерных динамических массивов
1. Удалить из массива положительный элемент. 2. Вставить число 99 после второго элемента...

Обработка одномерных динамических массивов
Помогите написать программу (Динамические массивы) Написать программу, которая создает...

Обработка одномерных динамических массивов
Помогите написать программу (Динамические массивы) Написать программу, которая создает...

Написать программу с использованием одномерных динамических массивов вещественных чисел
Задание На основе составленных алгоритмов в среде Visual Studio написать консольную программу...

Разработать программу, содержащую две функции: • функция обработки одномерных динамических массивов согласно варианту за
Написал первую часть, но с ошибками, нужно дописать вторую и исправить код, но не знаю как, только...

4
DemolitionMan
130 / 156 / 87
Регистрация: 06.04.2016
Сообщений: 992
02.04.2017, 19:11 2
Цитата Сообщение от Zapomni Посмотреть сообщение
C++
1
float *P,Y,Yi,ei,Zij;
- может, потому что здесь нет объявления указателя на W?

Добавлено через 4 минуты
Цитата Сообщение от Zapomni Посмотреть сообщение
C++
1
2
float *W = new float[Size];
float *P = new float[Size];
- здесь тогда нужно убрать объявление этих массивов и оставить только создание. Видимо они получаются локальными в конструкторе и не работают в области видимости класса.
1
Zapomni
0 / 0 / 0
Регистрация: 02.06.2013
Сообщений: 17
02.04.2017, 19:32  [ТС] 3
=_= ) спасибо
0
castaway
Эксперт С++
4947 / 3053 / 456
Регистрация: 10.11.2010
Сообщений: 11,147
Записей в блоге: 10
Завершенные тесты: 1
02.04.2017, 19:39 4
Zapomni, W и P (строки 26 и 27) - локальные переменные. Они не видны другим членам класса.
1
notAll
477 / 193 / 67
Регистрация: 27.05.2016
Сообщений: 504
Завершенные тесты: 2
02.04.2017, 19:52 5
Zapomni, еще не надо забывать про безопасность исключений:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Perseptron
{
    float *P, *W;
    int Size;
 
public:
    explicit Perseptron(int SizeOfVector) : P(nullptr), W(nullptr), Size(SizeOfVector)
    {
        try
        {
            P = new float[Size];
            W = new float[Size];
        }
        catch (std::bad_alloc&)
        {
            delete[] P;
            delete[] W;
            throw;
        }
    }
};
1
02.04.2017, 19:52
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2017, 19:52

Слияние двух динамических массивов…
Приветствую Вас!:) Задача такая: Даны два массива: A и B (числовые), упорядоченные по...

Объединение двух динамических массивов
Не могу соединить два динамических массива в один большой (под катом описание проблемы): cin &gt;&gt; n;...

Поочередная загрузка двух динамических массивов
Всем доброго дня. Такая задача: в программе существуют 2 динамических массива. Данные в них...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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