Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 21.02.2020
Сообщений: 12

Невозможно вычислить выражение из динамического массива внутри класса

21.02.2020, 17:40. Показов 1328. Ответов 4

Студворк — интернет-сервис помощи студентам
Конструктор инициализирует элемент массива, после метод выводит элементы класса.Функция не может вывести элемент массива.Помогите, в чём ошибка, и как это исправить?
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
#include<Windows.h>
#include<iostream>
using namespace std;
 
class Word {
    char *slovo;
    int *num;
    int re;
    int n;
public:
    
    Word () 
    {
    n=1;
    slovo="not found";
    int *num=new int[n];
    num[0]=1;
    re=0;
    }
 
void GetWord()
{
    cout<<slovo<<endl;
        for(int i=0; i<n; i++)
            cout<<num[i]<<" ";
        cout<<endl<<re<<endl;
}
 
};
 
 
 
int main(void)
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    Word SI;
    SI.GetWord();
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.02.2020, 17:40
Ответы с готовыми решениями:

Объявление динамического массива в структуре, ошибка: невозможно инциализировать
(см. строку 18) В ходе написания программы столкнулся с проблемой невозможности объявления динамического массива в структуре, ошибка:...

Невозможно вычислить выражение поскольку оно делится на ноль
Пишет &quot;невозможно вычислить выражение поскольку оно делится на ноль&quot; не понимаю почему

Невозможно вычислить выражение по скольку оно делится на ноль
Доброго времени! Программа не считает, указывая на ошибку: &quot;Невозможно вычислить выражение по скольку оно делится на ноль&quot;, однако...

4
 Аватар для Annemesski
2670 / 1333 / 479
Регистрация: 08.11.2016
Сообщений: 3,685
21.02.2020, 18:15
в чем смысл поля класса num?
0
0 / 0 / 0
Регистрация: 21.02.2020
Сообщений: 12
21.02.2020, 19:13  [ТС]
Класс содержит в себе:
C++
1
char* slovo;
слово (которое будет повторяться),
C++
1
int*num;
номера страниц (где повторилось слово),
C++
1
 int re;
сколько раз это слово повторилось, +
C++
1
int n
для выделения памяти в дальнешим. Сама суть программы по поиску слова, но у меня даже не получается создать массив под номера страниц, где это слово повторилось.
0
199 / 155 / 45
Регистрация: 11.11.2019
Сообщений: 348
21.02.2020, 21:11
Лучший ответ Сообщение было отмечено Simuss12 как решение

Решение

1. В строке 16 имеем локальную переменную num. Нужно исправить на:
C++
1
num = new int[n];
2. В строке 6 замените тип свойства на:
C++
1
string slovo;
потому что иначе в строке 15 будет ошибка

Добавлено через 16 минут
Да, и добавьте заголовок:

C++
1
#include <string>
1
7 / 4 / 3
Регистрация: 10.12.2019
Сообщений: 10
21.02.2020, 22:04
У вас в конструкторе происходит присваивание значений переменным-членам класса, а не инициализация. Изменил порядок объявления членов num и n, так как их инициализация происходит в порядке объявления в классе(при инициализации num произошла бы ошибка, т.к. переменная n не была бы определена). А также указатель должен быть const char*. Ну и не забываем деструктор с освобождением динамической памяти.

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
#include<Windows.h>
#include<iostream>
using namespace std;
 
class Word {
private:
    const char *slovo;
    int n;
    int* num;
    int re;
    
public:
 
    Word() :slovo{"not found"},n { 1 }, num{ new int[n] }, re{ 0 }
    {
        num[0] = 1;
    }
 
    ~Word()
    {
        delete[] num;
    }
 
    void GetWord()
    {
        cout << slovo << endl;
        for (int i = 0; i < n; i++)
            cout << num[i] << " ";
        cout << endl << re << endl;
    }
 
};
 
int main(void)
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    Word SI;
    SI.GetWord();
    return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.02.2020, 22:04
Помогаю со студенческими работами здесь

Невозможно вычислить выражение, поскольку оно делится на ноль
Не могу понять , в чем проблема. Помогите.

создание динамического массива внутри функции
Люди, помогите пожалуйста. Нужно написать функцию, которая читает из файла числа (их количество заранее неизвестно) и записывает их в...

Изменение динамического массива внутри процедуры
Подскажите как правильно передать динамический массив в процедуру ,чтобы его можно было там изменить Пробовал сделать так: #include...

Некорректное удаление динамического массива внутри объекта
Здравствуйте, встретился вот такой проблемой: скрин Краткое введение в курс дела, захотел сделать создание собственных массивов на...

Инициализация двумерного динамического массива внутри программы
Здравствуйте! Подскажите, пожалуйста, можно ли как-то инициализировать двумерный динамический массив значениями без ввода при запуске?...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru