Есть ли в Delphi "граждане первого класса" ???

Антохин
Дата: 10.05.2011 10:54:16
автор
) Гражданами первого класса называются элементы языка программирования, имеющие значения, с которыми можно обращаться как с обычными переменными, а именно: присваивать, передавать в качестве параметров, возвращать из функций-подпрограмм.

источник: здесь
AWSVladimir
Дата: 10.05.2011 15:46:06
Антохин
автор
) Гражданами первого класса называются элементы языка программирования, имеющие значения, с которыми можно обращаться как с обычными переменными, а именно: присваивать, передавать в качестве параметров, возвращать из функций-подпрограмм.

источник: здесь


Ну вообще то любые типы. Или я нифига не понял вопроса.
Или вы под "элементами языка"
begin:=(while + for) / shl ?
Esperito
Дата: 10.05.2011 16:54:23
Чего тебе надобно?..
Антохин
Дата: 11.05.2011 06:47:58
AWSVladimir
Антохин
пропущено...

источник: здесь


Ну вообще то любые типы. Или я нифига не понял вопроса.
Или вы под "элементами языка"
begin:=(while + for) / shl ?

ну я как бы не автор той статьи, поэтому что-либо говорить о том что "я имел ввиду" думаю неуместно.
как я понял - допустим есть переменная А типа string, её значение "Button1", то с помощью данного значения можно обратиться к кнопке с именем "Button1".
andreymx
Дата: 11.05.2011 07:14:42
Антохин,

findComponent не подойдёт?
Антохин
Дата: 11.05.2011 07:25:52
andreymx
Антохин,

findComponent не подойдёт?

это другое, это ладно если в переменной хранится имя какого-нибудь компонента, а если имя другой переменной?!
ДжекНепотрошитель
Дата: 11.05.2011 10:24:36
Антохин
ну я как бы не автор той статьи, поэтому что-либо говорить о том что "я имел ввиду" думаю неуместно.
как я понял - допустим есть переменная А типа string, её значение "Button1", то с помощью данного значения можно обратиться к кнопке с именем "Button1".

Неправильно ты понял. Имелись в виду все элементы языка, которые могут участвовать в выражениях. Т.е. "граждане первого класса" есть в любом языке программирования. Просто в некоторых языках (особенно в С++) благодаря перегрузке операторов выражения можно использовать и с экземплярами классов. Поэтому экземпляры классов там тоже попадают под это определение. Именно на это автор статьи и обращал внимание. В то время как для целочисленных переменных сложение - естественная операция, сложение для строк С++ является абстракцией, за которой на самом деле стоит создание нового объекта, выделение буфера под новую строку и копирование данных.
Антохин
Дата: 11.05.2011 10:37:28
ДжекНепотрошитель
Антохин
ну я как бы не автор той статьи, поэтому что-либо говорить о том что "я имел ввиду" думаю неуместно.
как я понял - допустим есть переменная А типа string, её значение "Button1", то с помощью данного значения можно обратиться к кнопке с именем "Button1".

Неправильно ты понял. Имелись в виду все элементы языка, которые могут участвовать в выражениях. Т.е. "граждане первого класса" есть в любом языке программирования. Просто в некоторых языках (особенно в С++) благодаря перегрузке операторов выражения можно использовать и с экземплярами классов. Поэтому экземпляры классов там тоже попадают под это определение. Именно на это автор статьи и обращал внимание. В то время как для целочисленных переменных сложение - естественная операция, сложение для строк С++ является абстракцией, за которой на самом деле стоит создание нового объекта, выделение буфера под новую строку и копирование данных.

да точно, ты прав)
спасибо за разъяснение!
roschinspb
Дата: 11.05.2011 22:47:37
Антохин, тынц.
Антохин
Дата: 12.05.2011 07:19:36
roschinspb
Антохин, тынц.

я знаю что такое перегрузка операторов)
спасибо)