Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Incompatible types, Не могу согласовать типы  
V
    Опции темы
Vello
  Дата 14.8.2010, 03:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Помогите согласовать типы в двух юнитах, первый - основной, где находиться основное тело калькулятора, второй - это юнит в котором описано функции расчета комплексных чисел. Как вы поняли разговоро пойдет о комплексных числах. В первом юните я создал тип запись, который включает две переменные типа double:

Код

type
    TComplex = record
    a, b: double;
end;


Во втором я создал идентичную запись:

Код

type
    TComplex = record 
    a, b: double; 
  end;


В формулах я использую не на прямую переменную этого типа, а работаю с поинтером таким вот способом:

Код

function C_AddN(a, b: ComplexPtr): ComplexPtr; //result:=a+b RECTANGULAR
begin
  result := new(ComplexPtr);
  result.a := a.a + b.a;
  result.b := a.b + b.b;
end;


Но когда я пытаюсь вызвать эти формулы таким способом:
Код

RGCOut := C_AddN(Comp1, Comp2);


(Где Comp1, Comp2 - поинтеры на тип TComplex). Компилятор выбивает ошибку "[Error] MiniCalc1.pas(483): Incompatible types: 'MiniCalc1.TComplex' and 'ComplexRec.TComplex'". Вроде бы эти типы идентичны, но почему они не могут согласоваться? smile 
PM MAIL   Вверх
CodeMonkey
Дата 14.8.2010, 05:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

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



Потому что это разные типы.

В чём сокровенный смысл объявления двух типов, которые бинарно и функционально эквивалентны?

Добавлено через 54 секунды
Аналогия: стоит у дороги два дома, слева и справа. Дома идентичны, они шаблонные, построены по одному проекту. Но это же разные дома.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Vello
Дата 14.8.2010, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо большое, это помогло разобраться в проблеме.
PM MAIL   Вверх
AntonN
Дата 14.8.2010, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



CodeMonkey
Цитата

Аналогия: стоит у дороги два дома, слева и справа. Дома идентичны, они шаблонные, построены по одному проекту. Но это же разные дома. 

проект ведь один, и планировка одинакова.
Сокровенный смысл может быть простой - юниты разных разработчиков используемые в своем проекте, в которых описан одинаково тип. Может же быть такая ситуация?


--------------------
user posted image
PM MAIL WWW   Вверх
Vello
Дата 14.8.2010, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



в общем я все обдумал и можно все сделать с помощью не типизированных поинтеров. Но я поступил проще я использовал тот тип, который описан во втором юните в первом, на этом ошибка себя исчерпала smile .
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


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

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


 




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


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

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