106 / 106 / 9
Регистрация: 02.06.2009
Сообщений: 578
1

Объекты: параметр-значение и параметр-переменная

22.06.2012, 01:14. Показов 888. Ответов 2
Метки нет (Все метки)

Если сделать код таким:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
type
    TPos=object
        ax,ay:integer;
        constructor Init(x,y:integer);
        function GetX:integer;
        function GetY:integer;
        procedure Print; virtual;
    end;
 
    TSym=object(TPos)
        r:char;
        constructor Init(x,y:integer;C:char);
        procedure Print;virtual;
    end;
 
    TStr=object(TPos)
        str:string;
        constructor Init(x,y:integer; S:string);
        procedure Print;virtual;
    end;
 
constructor TPos.Init(x,y:integer);
begin
    ax:=x; ay:=y;
end;
 
function TPos.GetX:integer;
begin
    GetX:=ax;
end;
 
function TPos.GetY:integer;
begin
    GetY:=aY;
end;
 
procedure TPos.Print;
begin
    writeln('haha');
end;
 
constructor TSym.Init(x,y:integer;C:char);
begin
    TPos.Init(x,y);
    r:=c;
end;
 
procedure TSym.Print;
begin
    writeln(r);
end;
 
constructor TStr.Init(x,y:integer; S:string);
begin
    TPos.Init(x,y);
    str:=s;
end;
 
procedure TStr.Print;
begin
    writeln(str);
end;
 
procedure PrintObj(var T:TPos);
begin
    T.Print;
end;
 
var
    C:TSym;
    S:TStr;
    a:char;
    hello:string;
begin
    readln(a);
    readln(hello);
    C.Init(1,1,a);
    S.Init(1,1,hello);
    PrintObj(C);
    PrintObj(S);
end.
Где в заголовке процедуры PrintObj параметр передается как переменная, то все работает адекватно. А если убрать var, то будет выводиться какая-то ересь.
Почему так получается?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.06.2012, 01:14
Ответы с готовыми решениями:

Глобальная переменная, локальная переменная, параметр переменные, параметр заполнения
Где здесь глобальная переменная, локальная переменная, параметр переменные, параметр заполнения...

Где в программе используется параметр-переменная, а где параметр-значения?
Напишите, что выведет на экран следующая программа. Где в программе используется...

Переменная как параметр
привет! есть таблица news и в ней колонки rus_title и eng_title в переменной $lang храню...

Параметр или переменная в классе?
Какие правила существуют для выбора: передача параметра в метод или создание private поля в классе?...

2
Почетный модератор
64076 / 47486 / 32735
Регистрация: 18.05.2008
Сообщений: 115,185
22.06.2012, 12:20 2
Потому что нужно создать объект T, чем-то наполнить, потом печатать, а без var фиг знает что хотим напечатать, вот программа сама и придумывает.
1
106 / 106 / 9
Регистрация: 02.06.2009
Сообщений: 578
22.06.2012, 13:18  [ТС] 3
Т.е. в Паскале копия объекта передаваемая как параметр - не является идентичной тому объекту, который до этого был инициализирован?
И еще такой вопрос: таблица виртуальных методов сооружается для объектного типа или для экземпляра типа?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.06.2012, 13:18

Используя параметр, введенный с клавиатуры, удалить все файлы, содержащие этот параметр
Задание такое:используя параметр введенный с клавиатуры удалить все файлы содержащие этот параметр....

Как передать параметр из jsp java страницы в функцию javascript и возвратить обратно другой параметр
На jsp странице имеется динамически формируемая таблица с чекбоксами в первой колонке каждой строки...

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

В настройках GoogleChrome стоит параметр "Этот параметр включен администратором". Стартовая страница yamdex.ne
При запуске Google: cтартовая страница yamdex.net.В настройках GoogleChrome стоит параметр "Этот...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.