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

Оператор индексации

04.05.2017, 22:12. Показов 1205. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. В чём ошибка? Пишет, что выражение должно иметь тип bool.
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
//main.h
#pragma once
#include <iostream>
using namespace std;
 
class Test {
private:
    bool Array[5];
public:
    Test() {
        for (int i = 0; i < 5; i++)
            Array[i] = false;
    }
    bool &operator[](int i) {
        return Array[i];
    }
};
 
extern Test* a = new Test();
 
//main.cpp
#include "main.h"
 
Test *a = new Test();
 
int main(){
    if (a[0])
        cout << "test" << endl;
    system("pause");
    return 0;
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.05.2017, 22:12
Ответы с готовыми решениями:

Как перегрузить оператор индексации для указателя
#define HIGH_H 0 #define LOW_H 1 #define OPEN_H 2 #define CLOSE_H 3 #define VOLUME_H 4 #define HER_H 5 class Candle { ...

Оператор индексации и присваивания для шаблонного класса Vector C++
Было задание разработать шаблонный класс Vector и к нему перегрузить оператор таким боразом, чтобы он &quot;должен позволять как получить...

Написать программу, содержащую оператор оператор for для счета от 2 до 5 через 1
В С++ я ноль, помогите пожалуйста написать прогу Написать программу, содержащую оператор оператор for для счета от 2 до 5 через 1 ...

9
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
04.05.2017, 22:25
Лучший ответ Сообщение было отмечено рандомнейм как решение

Решение

а - это указатель, в 27 строке его нужно разыменовать.

Добавлено через 1 минуту
В 19 строке не нужно создавать объект, здесь должно быть только объявление.
1
1 / 1 / 0
Регистрация: 17.03.2017
Сообщений: 64
04.05.2017, 22:50  [ТС]
Цитата Сообщение от likehood Посмотреть сообщение
В 19 строке не нужно создавать объект, здесь должно быть только объявление.
Так там же стоит extern или этого недостаточно?
0
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
05.05.2017, 08:43
Цитата Сообщение от рандомнейм Посмотреть сообщение
Так там же стоит extern или этого недостаточно?
Если этот объект должен быть доступен в других файлах, то extern нужен. Но создаваться объект должен в одном месте - в файле main.cpp. В main.h достаточно написать
C++
1
extern Test* a;
1
1 / 1 / 0
Регистрация: 17.03.2017
Сообщений: 64
05.05.2017, 14:04  [ТС]
Цитата Сообщение от likehood Посмотреть сообщение
а - это указатель, в 27 строке его нужно разыменовать.
Чтобы разыменовать, нужно поставить *, да? То есть должно получится вот так?
C++
1
if (*a[0])
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
05.05.2017, 14:11
Цитата Сообщение от рандомнейм Посмотреть сообщение
То есть должно получится вот так?
Сначала скажи, что там проверяется? Скорее всего, так:
C++
1
if ((*a)[0])
1
1 / 1 / 0
Регистрация: 17.03.2017
Сообщений: 64
05.05.2017, 14:15  [ТС]
Цитата Сообщение от nd2 Посмотреть сообщение
Сначала скажи, что там проверяется?
Код выше(в 1 посте), а если вкратце, то значение из массив типа bool.
0
Велосипедист...
 Аватар для Mournful Max
353 / 220 / 73
Регистрация: 15.12.2015
Сообщений: 785
05.05.2017, 14:19
Цитата Сообщение от рандомнейм Посмотреть сообщение
C++
1
2
3
4
Test() {  // 10 строка
  for (int i = 0; i < 5; i++)
    Array[i] = false;
}
Цитата Сообщение от рандомнейм Посмотреть сообщение
C++
1
2
3
4
int main(){  // 26 строка
  if (*a[0])
    cout << "test" << endl;
...
Условие никогда не выполнится
0
1 / 1 / 0
Регистрация: 17.03.2017
Сообщений: 64
05.05.2017, 14:21  [ТС]
Цитата Сообщение от Captain Maxee Посмотреть сообщение
Условие никогда не выполнится
Проблема была в ошибке, которую выводил компилятор, но уже всё.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
05.05.2017, 14:25
Цитата Сообщение от рандомнейм Посмотреть сообщение
Так там же стоит extern или этого недостаточно?
Если есть явная инициализация объекта, то extern игнорируется (будет определение).
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.05.2017, 14:25
Помогаю со студенческими работами здесь

Условный оператор, оператор ввода/вывода; плоскость и принадлежность точки
Здравствуйте. В С++ я абсолютный новичок, поэтому с первым же заданием возникли определённые трудности. Будьте добры, помогите решить. Буду...

Для шаблонного класса перегрузить оператор присваивания, copy-конструктор, объекты cin и cout, оператор *
Помогите в следующем: Для класса шаблона следует перегрузить оператор присваивания, конструктор копирования, бинарный оператор суммы «*»,...

Для чего нужен оператор двоеточие, если два двоеточия - это оператор расширения области видимости
для чего нужен оператор двоеточие ( : ), если два двоеточия( :: ) - это оператор расширения области видимости.

Применяя оператор цикла FOR вычислить y. Оператор if в теле цикла не использовать. Значение m и n вводить с клавиатуры.
Применяя оператор цикла FOR вычислить y. Оператор if в теле цикла не использовать. Значение m и n вводить с клавиатуры. Шаг изменения...

Почему обращение к методам осуществляется через оператор прямого доступа, а не через оператор указателей->?
#include &lt;iostream&gt; using namespace std; class random { public: void Set(int b){a=b;} int Get(){return a;} private: ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru