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

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

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.02.2015, 22:31   #21
hoz
Форумчанин
 
Аватар для hoz
 
Регистрация: 29.06.2013
Сообщений: 132
По умолчанию

Цитата:
Сообщение от lomastr_ Посмотреть сообщение
это переменная а не объект, что тут не понятно?
Переменная это и есть в данном случает объект. Вот из книги скрин:

2014-07-28_004259.jpg
hoz вне форума Ответить с цитированием
Старый 12.02.2015, 22:37   #22
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

создаете естественно объект, а instance переменная ссылочного типа, в ней находится только ссылка (в приближении указатель - 4 байта) - адрес объекта в памяти
объект не в переменной лежит а в куче, где-то фик знает где, мы только адрес знаем, и по адресу с объектом и работаем

Цитата:
а вот для b (хоть и работаем с ним как с объектом BaseClass) вызовется метод из DerivedClass.
а вот как для b вызвать тот что от BaseClass ?

Последний раз редактировалось Stilet; 13.02.2015 в 07:48.
lomastr_ вне форума Ответить с цитированием
Старый 12.02.2015, 23:13   #23
hoz
Форумчанин
 
Аватар для hoz
 
Регистрация: 29.06.2013
Сообщений: 132
По умолчанию

Цитата:
Сообщение от lomastr_ Посмотреть сообщение
создаете естественно объект, а instance переменная ссылочного типа, в ней находится только ссылка (в приближении указатель - 4 байта) - адрес объекта в памяти
Это всё понятно. Но эта ссылочная переменная являясь теоретически ссылкой на класс DerivesClass(), а не на обрубок по функционалу Base() тем не менее не может оперировать полями класса DerivedClass(). lomastr_, Вы ответили сверху на этот вопрос. Но как-то не однозначно. Лично я это не понял. Хотя базовые знания как писать эти полиморфные структуры я уже понял неделю назад. Но вот вышеприведённый вопрос для меня остаётся загадкой.
hoz вне форума Ответить с цитированием
Старый 12.02.2015, 23:15   #24
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

может проще будет так понять
я не зря упираю на то что в определении переменной тип - это как своего рода интерфейс, вот посмотрим на них как таковых
к примеру есть 2 интерфейса
Код:
interface IFirst
{
     void FirstFoo();
}
interface ISecond
{
     void SecondFoo();
}
и класс
Код:
class SomeClass : IFirst, ISecond
{
   public void FirstFoo(){ ... }
   public void SecondFoo(){ ... }
}
создадим объект
Код:
var obj = new SomeClass ();
могу написать так:
Код:
IFirst first = obj;
ISecond second = obj;
что происходит с объектом? правильно - ничего, а вот по средствам переменных, мы можем с ним работать по разному, т.к. тут и оговорили что собственно разрешено а что нет
так понятнее?

Цитата:
Но эта ссылочная переменная являясь теоретически ссылкой на класс DerivesClass()
я вот что не пойму так это то что вроде вам понятно (так вы утверждаете) и тут же говорите полную чепуху, как так? это не ссылка на класс, а ссылка на объект, и не теоретически а реально

Последний раз редактировалось Stilet; 13.02.2015 в 07:50.
lomastr_ вне форума Ответить с цитированием
Старый 12.02.2015, 23:25   #25
hoz
Форумчанин
 
Аватар для hoz
 
Регистрация: 29.06.2013
Сообщений: 132
По умолчанию

Цитата:
Сообщение от lomastr_ Посмотреть сообщение
я вот что не пойму так это то что вроде вам понятно (так вы утверждаете) и тут же говорите полную чепуху, как так? это не ссылка на класс, а ссылка на объект, и не теоретически а реально
Это уже от усталости. Завтра уже с утра посмотрю на свежую голову.
hoz вне форума Ответить с цитированием
Старый 13.02.2015, 20:11   #26
hoz
Форумчанин
 
Аватар для hoz
 
Регистрация: 29.06.2013
Сообщений: 132
По умолчанию

Цитата:
Сообщение от lomastr_ Посмотреть сообщение
что происходит с объектом? правильно - ничего, а вот по средствам переменных, мы можем с ним работать по разному, т.к. тут и оговорили что собственно разрешено а что нет
так понятнее?
С большего. Тока тут, опять-таки, всё как-то.. представь что это интерфейс.. когда интерфейса то в данных случая то нет. В общем, я с большего понимаю о чём речь. Буду дальше двигаться. И перечитаю ещё разок что уже знал. Со временем уляжется у уме надеюсь...
hoz вне форума Ответить с цитированием
Старый 13.02.2015, 21:56   #27
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

Цитата:
когда интерфейса то в данных случая то нет
как это нет? а что по вашему есть АПИ, который апликейшн программинг интерфейс?
lomastr_ вне форума Ответить с цитированием
Старый 13.02.2015, 22:30   #28
hoz
Форумчанин
 
Аватар для hoz
 
Регистрация: 29.06.2013
Сообщений: 132
По умолчанию

Цитата:
Сообщение от lomastr_ Посмотреть сообщение
как это нет? а что по вашему есть АПИ, который апликейшн программинг интерфейс?
Это типа API?
PHP код:
BaseClass b = new DerivedClass(); 
hoz вне форума Ответить с цитированием
Старый 13.02.2015, 22:45   #29
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

апи в данном случае это тот набор открытых свойств методов и полей, которые предоставляет тип переменной
да и какбы надо различать тип переменной и тип объекта, т.к. это не всегда одно и тоже

Последний раз редактировалось lomastr_; 13.02.2015 в 22:51.
lomastr_ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос для приведения к одному, одинаковому размеру графиков REztor Microsoft Office Excel 2 23.12.2012 22:28
Битва экстрасенсов. Приведения, души и т.д. TwiX Свободное общение 5 30.10.2011 15:22
Ошибка при присвоении объекту производного класса объекта базового класса с исп. явного приведения типов Lanx Помощь студентам 0 06.04.2011 20:24
Приведение к типу __Demon__ Общие вопросы C/C++ 1 27.09.2009 17:40
Проблема приведения типов Dec(Leprosus) Общие вопросы C/C++ 14 08.05.2008 04:24