Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2011, 12:32   #1
Max1548
Пользователь
 
Регистрация: 28.05.2011
Сообщений: 99
Сообщение Взаимосвязанные классы

Есть два класса: TDog и TOwner. TDog содержит объект типа TOwner, а TOwner содержит массив объектов TDog. Если описать сначала TOwner, а потом уже TDog, то ошибка выпадает в описании массива TDog, а если наоборот, то в описании класса TDog, как быть, что делать?
Вот код:
Код:
library MainFunctions;

{ Important note about DLL memory management: ShareMem must be the
  first unit in your library's USES clause AND your project's (select
  Project-View Source) USES clause if your DLL exports any procedures or
  functions that pass strings as parameters or function results. This
  applies to all strings passed to and from your DLL--even those that
  are nested in records and classes. ShareMem is the interface unit to
  the BORLNDMM.DLL shared memory manager, which must be deployed along
  with your DLL. To avoid using BORLNDMM.DLL, pass string information
  using PChar or ShortString parameters. }

uses
  SysUtils,
  Classes;

type
  TOwner = class
  private

  public
    name: string;
    surname: string;
    Dogs: array[0..100] of TDog;
  end;

  TDog = class
  private

  public
    name: string;
    breed: string;
    sex: string[1];
    Owner: TOwner;
    LongName: string;
    Parents: array[0..2] of TDog;
    Photo: TObject;
  end;



{$R *.res}
var
  alfa, al, ol: TDog;
  par: array[0..2] of TDog;

begin

end.
OS - [||-----------------------------------------------] забил, дойдя до драйвера памяти
Max1548 вне форума Ответить с цитированием
Старый 06.11.2011, 17:07   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,883
По умолчанию

Код:
type
  Tdog = class; // форвард-описание
  TOwner = class
  public
    ...
    Dogs: array[0..100] of TDog;
  end;

  TDog = class
  public    
    Owner: TOwner;
    Parents: array[0..2] of TDog; // жээээсть :)))
    ...
  end;
phomm вне форума Ответить с цитированием
Старый 06.11.2011, 23:05   #3
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

fftopic:

Цитата:
// жээээсть ))
Это марсианские собаки.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Взаимосвязанные селекты pavelslap PHP 2 22.05.2011 00:25
Классы в С++ zoluxa Помощь студентам 0 23.03.2010 00:26
классы Sined121 Общие вопросы C/C++ 3 22.12.2009 20:29
Классы с++. ahab Помощь студентам 4 19.12.2009 12:43