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

Ошибка выражение должно иметь константное значение - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Какая разница между cin и scanf? http://www.cyberforum.ru/cpp-beginners/thread348602.html
Здраствуйте. А какая разница между cin и scanf?
C++ Пока ввод успешен и не достигнут EOF... #include <iostream> #include <fstream> #include <cstdlib>// poddergka exit() const int SIZE = 60; int main() { setlocale(LC_ALL, "rus"); http://www.cyberforum.ru/cpp-beginners/thread348596.html
Списки. Даны натуральное число n... C++
Даны натуральное число n, действительные числа a1,..., an. Вычислить: (\sqrt{\left|a{}_{1} \right|}-a{}_{1})^2+...+(\sqrt{\left|a{}_{n} \right|}-a{}_{n})^2 Нужно сделать при помощи списков.
Как вытащить данные из объекта? C++
Доброго времени суток! Есть структура граф. Есть два представления Л и М граф. В конструкторе графа создается объект абстрактного класса, потомки которого Л и М. #include "ABCGraph.h" #include "LGraph.h" #include "MGraph.h" #pragma once; //using std::vector; //using std::list;
C++ Построить прямоугольник по двум заданным точкам http://www.cyberforum.ru/cpp-beginners/thread348545.html
Построить прямоугольник по двум заданным точкам: левому верхнему и правому нижнему углам. Обе точки указываются с клавиатуры, а именно: передвигаемся стрелками на нужное место и подтверждаем нахождение точки (например клавишей Enter), указываем 2-ю точки тем же методом. После этого строится прямоугольник. Нужно использовать метод резиновой нити или резинового прямоугольника: рис 96. ...
C++ залить из двумерного массива данные в одномерный длиной, равной количеству всех элементов исходного массива Доброго времени суток :) Образовался новый глупый вопрос... Предположим у меня есть двухмерный массив: vertex** massiv() { // объявляем динамический массив vertex **v = new vertex *; //заполняем его данными for (unsigned int i=0;i<hwidth-1;i++) { v = new vertex; подробнее

Показать сообщение отдельно
towayy
3 / 3 / 0
Регистрация: 12.05.2011
Сообщений: 20

Ошибка выражение должно иметь константное значение - C++

06.09.2011, 15:48. Просмотров 7818. Ответов 5
Метки (Все метки)

Всем привет.

Тут такая песня началась забавная.

Вообще для начала я хочу выделить очень важную для меня строку - никакого решения в виде готового алгоритма показывать не нужно(я хочу это загадку потом решить, потому что пока она не решена она мне интересна)

Вообщем я С++ учу без всяких там спец курсов и думаю далековато уже продвинулся в плане основ и тут приятель решил на курсы записаться.
Ну а мне любопытно что они там проходят.

И значит у него произошёл затор и я решил попробовать колдовать над его задачей.

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

Примерное задание такое: оно опять же с его слов:
Объявить клас в заголовочном файле например

C++
1
Test.h
ну примерно там будут записаны пару библиотек

C++
1
2
<iostream>
<string>
C++
1
2
поля данных
методы();
примерный синтаксис наверное такой:

C++
1
2
3
4
class Test
{
Компоненты класса
};
Сама фишка в том что ему запретили использовать модификаторы доступа:

C++
1
2
Public:
Private:
А в самом реализующем классе Test.cpp
нужно создать массив класса.
Может я не правильно терминологию употребил но примерно в моём понятие это бвыглядело бы так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
//Test.h
 
#include <iostream>
 
using namespace std;
 
class Test
{
int x;
//metods
starter();
};
C++
1
2
3
4
5
6
7
//Test.cpp
 
int Test::starter()
{
Test zasada[10] //вот в моём понятие массив класса
 
}
Вся загвоздка в том что нужно :
1 - не использовать модификаторы лдоступа public: Private:
2 - элемент массива задать через ссылку Test zasada[ssilka]

я попробовал 3 варианта но все они ссыллаются на ошибку в этом блоке:
Test zasada[ssilka] - пишется что выражение должно быть константным. Я это понимаю но блин все варианты провальные.

вот примеры:

1



C++
1
2
3
4
5
6
7
8
9
//Test.cpp
 
int Test::starter()
{
 char x = 'a';
 char *bb = &x;
 Test zasada[x]; //ошибка: выражение должно быть константным
 
}

2


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//Test.cpp
 
int Test::starter()
{
  int aa = 10;
 bbb(aa);
 
 Test zasada[bbb]; //ошибка: выражение должно быть константным
 
}
 
//создал функцию отдельно и записал в аргумент не инициализированную ссылку
int bbb (int& b)
{
 b++;
}
Не 1 не сработал везде ругается.

Вопрос мой такой: правильный ли у меня подход был , я гдето близко плаваю или вообще я что то ещё не понял в плане ссылок и массивов.
Вообще Элемент массива можно ссылкой записал или нет ?

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