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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Компилятор ругается при присваивании 
:(
    Опции темы
Chemist
Дата 4.1.2010, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Подскажите, в чем проблема.

есть uClientCOM.h файл с простейшей структурой PERSON
Код

#ifndef uClientCOMH
#define uClientCOMH
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TFormMy : public TForm
{
__published:    // IDE-managed Components
        TButton *Button1;
        TLabel *Label1;
        void __fastcall Button1Click(TObject *Sender);
private:    // User declarations
public:        // User declarations
        __fastcall TFormMy(TComponent* Owner);
};
extern PACKAGE TFormMy *FormMy;
//---------------------------------------------------------------------------


struct PERSON
  {
    int age;
    long ss;
  };

#endif


и .срр с попыткой использования  PERSON
Код

#include <vcl.h>
#pragma hdrstop
#include "uClientCOM.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TFormMy *FormMy;
//---------------------------------------------------------------------------
__fastcall TFormMy::TFormMy(TComponent* Owner)
        : TForm(Owner)
{
}

   PERSON brother;                     //  строка  17
 // int o= brother.age;
   brother.age=2;                        //  строка 19

void __fastcall TFormMy::Button1Click(TObject *Sender)
{
  FormMy->Label1->Caption=IntToStr(3);
}


При билде выдает
[C++ Error] uClientCOM.cpp(19): E2238 Multiple declaration for 'brother'
[C++ Error] uClientCOM.cpp(17): E2344 Earlier declaration of 'brother'
[C++ Error] uClientCOM.cpp(19): E2141 Declaration syntax error

хотя если 
   PERSON brother;                     //  строка  17
   int o= brother.age;
  // brother.age=2;                        //  строка 19
то все работает, о=0.
Что не так?

точно та же беда если использую класс, даже ошибки те же.



 ! 
bsa
Для своих вопросов создавай отдельные темы


Это сообщение отредактировал(а) bsa - 10.1.2010, 17:01
PM MAIL   Вверх
bsa
Дата 10.1.2010, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

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



Все очень просто. В какой момент времени ты хочешь чтобы выполнилась строка 15?
А на самом деле, проблема в том, что вне функций можно ТОЛЬКО объявлять/определять классы, переменные, функции. А ты пытаешься присвоить значение отдельной операцией, что в корне не верно.
Если хочешь, то можешь создать конструктор класса PERSON, который будет инициализировать структуру. Или перенеси строку 15 в тело какой-нибудь функции.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


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

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


 




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


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

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