Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Declaration syntax error 
:(
    Опции темы
Nikita_85
Дата 27.7.2007, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 24.7.2007

Репутация: нет
Всего: нет



Здравствуйте! 
Я только начинаю изучать С++ и столкнулся с проблемой. Прочитал раздел в учебнике про функции, попытался написать простенькую программу с функцией, но компилятор выдает Declaration syntax error. Объясните, пожалуйста, в чем ошибка? 


#pragma resource "*.dfm" 
TForm1 *Form1; 
//--------------------------------------------------------------------------- 
__fastcall TForm1::TForm1(TComponent* Owner) 
: TForm(Owner) 

int slozenie(int, int); 

void main(void) 
{                                                 // E2141 Declaration syntax error 
int a = 10; 
int b = 20; 
int summa; 

slozenie(&a, &b); 
&summa; 



int slozenie(int *first, int *second) 

int *summa; 
*summa = *first + *second; 
return *summa; 
}; 




ЗЫ Пользуюсь C++ Builder 6.0
PM MAIL   Вверх
Любитель
Дата 27.7.2007, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 24
Всего: 92



Ну дык правильно. Почему у тебя внутри конструктора формы какие-то функции появились?

А вообше - бросай лучше билдер (надеюсь обойдёмя без холиваров smile ).


--------------------
PM MAIL ICQ Skype   Вверх
Nikita_85
Дата 27.7.2007, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 24.7.2007

Репутация: нет
Всего: нет



а каким образом в Билдере сделать эту программку?
PM MAIL   Вверх
Любитель
Дата 27.7.2007, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 24
Всего: 92



Что-то типа File -> New -> Other -> Console Application.


--------------------
PM MAIL ICQ Skype   Вверх
Nikita_85
Дата 27.7.2007, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 24.7.2007

Репутация: нет
Всего: нет



а именно в этой форме? в Application?
PM MAIL   Вверх
Любитель
Дата 27.7.2007, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 24
Всего: 92



Ну вынеси функции за пределы конструктора + что это такое:
Код

&summa; 


Да и прототип функции slozhenie у тебя принимает инты, а сама функция почему-то указатели на инты... Вообщем читай внимательней учебник. Или другой возьми, если там непонятно smile


--------------------
PM MAIL ICQ Skype   Вверх
_hunter
Дата 27.7.2007, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 16
Всего: 98



как-то так:
Код

#pragma resource "*.dfm" 
TForm1 *Form1; 

int slozenie(int, int); 

//--------------------------------------------------------------------------- 
__fastcall TForm1::TForm1(TComponent* Owner) 
: TForm(Owner) 

    int a = 10; 
    int b = 20; 
    int summa; 

    summa = slozenie(&a, &b); 
    //&summa; -- в чем смысл -- хз.



int slozenie(int first, int second) 

    //int *summa; опять бред какой-то
    int summa = first + second; 
    return summa; 
}; 

а вообще: почитай книжку еще немного...

Это сообщение отредактировал(а) _hunter - 27.7.2007, 10:06


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
FiMa1
Дата 27.7.2007, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 408
Регистрация: 23.9.2006

Репутация: 5
Всего: 6



Любитель, насколько я понимаю Nikita_85 не знает пока что такое конструктор, он еще только начинает программировать на Си++. Кроме того, под фразой "а каким образом в Билдере сделать эту программку?" он, видимо, вопрошал как в данном контексте (в оконном варианте приложения с использованием VCL) использовать его фунцию. Можно, к примеру, так:
Код
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int sum(int first, int second);
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
int sum(int first, int second)
{
    int summa = first + second;
    return summa;
    // или так
    //return first + second;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
    Form1->Caption = sum(1, 2);
}
//---------------------------------------------------------------------------

Nikita_85, зачем ты используешь указатели? Я не уверен, что ты четко их понимаешь... 
Nikita_85, Любитель тебе правильно указал путь - начни с разработки консольных приложений. В Билдере File -> New -> Other -> Console Application
Это позволит тебе развиваться постепенно, и, в дальнейшем, не помешать функцию main внутрь конструктора формы.
Успехов!!!
PM   Вверх
Nikita_85
Дата 27.7.2007, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 24.7.2007

Репутация: нет
Всего: нет



Спасибо всем!
Да, я действительно не очень понимаю указатели. Читал в разных учебниках, но эта тема мне трудно дается...
PM MAIL   Вверх
FiMa1
Дата 27.7.2007, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 408
Регистрация: 23.9.2006

Репутация: 5
Всего: 6



Так ты это, если чего не понятно, спрашивай. И темку закрой если разрешено  smile .
PM   Вверх
archimed7592
Дата 27.7.2007, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Только перед тем как спрашивать почитай вот это:
http://forum.vingrad.ru/index.php?show_typ...32&view=all


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0494 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.