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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
siberx
0 / 0 / 0
Регистрация: 14.12.2008
Сообщений: 11
#1

Проблемы с инициализацией! - C++

14.12.2008, 13:42. Просмотров 629. Ответов 9
Метки нет (Все метки)

Привет!!

В программе несколько функций, и все они завязаны на несколько параметров, один из которых массив. эти функции вынесены вне мэйна. Нормально определю типыпеременных, а когда пытаюсь инициализировать вылезает ошибка multiple declaration for "имя переменных". Что делать?

Пыталась сунуть все объявления переменных и функции в мэйн- вылезает ошибка Declaration terminated incorrectly на строчку с названием функции.

плиз хелп
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2008, 13:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проблемы с инициализацией! (C++):

Проблемы с инициализацией данных - C++
Сразу оговорюсь, что на форуме пишу впервые и перед тем, как писать о проблеме ознакомился с похожими темами , но именно по моей проблеме...

Проблемка с инициализацией - C++
Допустим есть такой класс. Работаем именно с классом Temp, в котором указатель на класса IntArr производный от Int. Итак вопрос. Как...

не могу разобраться с инициализацией - C++
Доброго времени суток форумчане. Есть простой вопрос, объясните мне как начинающему, почему не работает инициализация в констркуторе...

Помогите с инициализацией ДОС-графики - C++
Проблемма необычная. Винда ХР. Турбо С . Директории настроены. Программа компилируется отлично. Например тот тамый BGIDEMO.C который...

компилятор пропускает строчки с инициализацией - C++
здравствуйте! Копмилятор пропускает строчки с инициализацией переменных. При попытке поставить маркер, переносит этот маркер на строчку...

Ошибка с инициализацией и нерабочий цикл - C++
Запустил отладку, не выполняются циклы выделенные коментами, потому что i имеет значение -858993460 после инициальзации void Second() ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Vourhey
Почетный модератор
6478 / 2253 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
14.12.2008, 14:08 #2
ты во время инициализации их тип, что ли заново пишешь? Код в студию.
siberx
0 / 0 / 0
Регистрация: 14.12.2008
Сообщений: 11
14.12.2008, 14:18  [ТС] #3
Цитата Сообщение от Vourhey Посмотреть сообщение
ты во время инициализации их тип, что ли заново пишешь? Код в студию.
вроде нет..

Код
#pragma argsused
double A, B;
double s;
double x0, xk;
double eps;

A=5/14;
B=7/15;
s=2;
x0=0;
xk=M_PI;
eps=0.0001;

double f1(double *Y)
{return A*Y[1];}
double f2(double *Y)
{return -B*Y[0];}
Vourhey
Почетный модератор
6478 / 2253 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
14.12.2008, 14:26 #4
Не понял. Где main? В объявлении тебе никак не инициализировать?
siberx
0 / 0 / 0
Регистрация: 14.12.2008
Сообщений: 11
14.12.2008, 15:11  [ТС] #5
До мэйна еще 13 км кода)))). Переделала
Код
#pragma argsused
double A=5/14;
double B=7/15;
double s=2;
double x0=0;
double xk=M_PI;
double eps=0.0001;
double o[2];
double Y0[2]={(B*M_PI), (A*M_PI)} ;
Возникла другая проблема: Массив нужно инициализировать выражением(как в коде), но компилятор не воспринимает, инициализироует нулями.
А если инициализировать покомпонентно опять Multiple declaration
Vourhey
Почетный модератор
6478 / 2253 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
14.12.2008, 15:29 #6
Код
double A = (double)5/14;
double B= (double)7/15;
siberx
0 / 0 / 0
Регистрация: 14.12.2008
Сообщений: 11
14.12.2008, 15:36  [ТС] #7
Как ни странно А, В заполняются верно и без ухищрений. Проблема с
Код
double Y0[2]={(B*M_PI), (A*M_PI)}
Vourhey
Почетный модератор
6478 / 2253 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
14.12.2008, 15:47 #8
Блин, при чем тут ухищрения?!
Там нет проблемы.
Это написано правильно. Так инициализировать можно. На месте объявления. Если у тебя после этог идет инициализация идет нулями, значчит при умножении и получаются нули. Посмотри в дебагере на свои перменные. Как дети малые, а...

Добавлено через 2 минуты 27 секунд
Вот тебе пример:
Код
double A = (double)5/14;
double B= (double)7/14;
double M_PI=3;
double Y0[] = {(B*M_PI), (A*M_PI)} ;

void main ()
{
	cout<<Y0[0]<<"  "<<Y0[1]<<endl;
	cin.get();
}
Вот тебе вывод:
1.5 1.07143

А потом называй нормальные вещи ухищрениями. Указать компилятору на тип - ухищрение
siberx
0 / 0 / 0
Регистрация: 14.12.2008
Сообщений: 11
14.12.2008, 20:40  [ТС] #9
Спасибо огромное!!! Посыпала пеплом главу(((((
Vourhey
Почетный модератор
6478 / 2253 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
14.12.2008, 21:43 #10
Не за что. Тему закрываю.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.12.2008, 21:43
Привет! Вот еще темы с ответами:

Wchar_t двумерный массив с инициализацией - C++
Подскажите, возможно ли сделать двумерный wchar_t массив с инициализацией? wchar_t text; //без инициализации

В чем разница между инициализацией и присваиванием? - C++
в чем разница между инициализацией и присваиванием? практически это одно и тоже,кроме инициализации ссылок-они могут менять значение.

Использование BassNet.dll. Проблема с инициализацией и воспроизведением файла mp3 - C++
Пожалуйста, помогите с библиотекой BassNet.dll (знаю уже были темы, связанные с использованием этой библиотеки, но так как в них не нашел...

Объясните пример с decltype, инициализацией контейнера map, по работе for_each и copy - C++
template&lt;class T, class U&gt; auto hellSum(const T&amp; x, const U&amp; y) -&gt; decltype(x + y) { return x + y; } Вот...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
14.12.2008, 21:43
Закрытая тема Создать тему
Опции темы

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