Перейти к публикации
  • Сейчас на странице   Всего пользователей: 0   (0 пользователей, 0 гостей)

Hed-kun

Программирование, т. 5.1.

Рекомендованные сообщения

  rubish написал 08.07.2015 в 20:12:
  Tinplz написал 08.07.2015 в 19:44:
ну то-есть код, где будет что-то вроде этого public class A: B, nocopy, deepcopy просто не скомпилится?

конструктор копирования ведет себя как и любой (если я не задал конструктор копирования - то у наследника его тоже нельзя будет задать или же если я удалил конструктор копирования - то и у наследника я его создать не смогу)

Блять , в рот ебал эту пд. Создайте уже новый тред, а то этому пизда

 

Короч, кусок кода лучше тысячи объяснений

http://ideone.com/nMgblZ

Поделиться сообщением


Ссылка на сообщение
  Tinplz написал 08.07.2015 в 20:49:

Короч, кусок кода лучше тысячи объяснений

http://ideone.com/nMgblZ

лол :) я же про другое спрашивал


Колы я выросту - то хочу буты такым як я

5c8bbc85b99e.gif

 

годные смайлы

Поделиться сообщением


Ссылка на сообщение
(изменено)
  rubish написал 08.07.2015 в 17:12:
  Tinplz написал 07.07.2015 в 21:23:
какая-то дичь. что будет, если я перегружу этот оператор в другом классе, от которого наследуюсь? что будет, если перегружу в свмом классе?

ну как бы на крестах операционки тоже не пишут. пишут на сях.

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

ну и ты потерял контекст. контекст был такой, что человек сделал утверждение: жава лучше для изучения ООП потому, что жава полностью объектно ориентированная.

какой-то чувак написал, что кресты в большей мере поддерживает ооп стандарты (лол. ооп стандарты) потому что там есть множественное наследование.

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

 

 

ебучая пд. не смог отредоктировать

 

  Tinplz написал 08.07.2015 в 17:05:
я с крестами в последний раз имел дело еще в универе.

почему я не могу это всё определить в самом классе?

Показать больше  
ты изначально контекст не понял. я говорил изучать ооп (в теории, ибо это же чисто теоретическое понятие, парадигма жи), и изучать с++ как всесторонний язык

затем мое покритиковали сказав что лучше джаву

затем я сказал что джава кастрированный язык


Изменено пользователем Just.Doit

 

очень крутые котейки


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение
  rubish написал 08.07.2015 в 21:05:
  Tinplz написал 08.07.2015 в 20:49:

лол :) я же про другое спрашивал

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

 

А в твоем куске кода - чего ты хочешь добиться наследованием от deep copy и nocopy одновременно?

за что отвечает deepcopy? как он получает доступ к полям базового класса и что он делает?

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

Если deepcopy реализует метод, который копирует наследника, но констукторы копирования удалены - то будет ошибка в этом месте.

Если deepcopy реализует метод, который копирует другой базовый класс, в котором есть конструктор копирования - то все будет работать.

Или я просто не понимаю твоего вопроса.

Поделиться сообщением


Ссылка на сообщение
  Just.Doit написал 08.07.2015 в 21:06:
ты изначально контекст не понял. я говорил изучать ооп (в теории, ибо это же чисто теоретическое понятие, парадигма жи), и изучать с++ как всесторонний язык

затем мое покритиковали сказав что лучше джаву

затем я сказал что джава кастрированный язык

я не знаю в каком контексте вообще кресты могут быть хорошим языком для изучения программирования.

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

если же изучать именно ООП (у меня в универе ООП именно на крестах было после семестра си) - то тут либо жава либо шарп.


Колы я выросту - то хочу буты такым як я

5c8bbc85b99e.gif

 

годные смайлы

Поделиться сообщением


Ссылка на сообщение

^

Каждое слово верно

Поделиться сообщением


Ссылка на сообщение
  Tinplz написал 08.07.2015 в 21:17:
  rubish написал 08.07.2015 в 21:05:

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

 

А в твоем куске кода - чего ты хочешь добиться наследованием от deep copy и nocopy одновременно?

за что отвечает deepcopy? как он получает доступ к полям базового класса и что он делает?

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

Если deepcopy реализует метод, который копирует наследника, но констукторы копирования удалены - то будет ошибка в этом месте.

Если deepcopy реализует метод, который копирует другой базовый класс, в котором есть конструктор копирования - то все будет работать.

Или я просто не понимаю твоего вопроса.

Показать больше  
ну тут дипкопи - это тупой пример, который наверное ничего общего не имеет с крестами, т.к. там нет рефлексии.

если бы она там была - то он копировал бы экземпляр класса не по ссылке (ссылкам), а по значению.

суть в том, что в одном классе ты создаешь конструктор копирования, а в другом удаляешь. (лол в шарпе даже такого нет. ты конструктор либо создаешь, либо создаешь по умолчанию, либо просто прячешь за прайватом, протектедом за наследованием и дальше наследники могут оказаться в ситуации, когда не может быть конструкторов вообще).

вот мне интересно, если я в классе удалю конструктор копирования и от него унаследуюсь - то наследник перед тем, как дернет конструктор по умолчанию или же просто не скомпилируется?


Колы я выросту - то хочу буты такым як я

5c8bbc85b99e.gif

 

годные смайлы

Поделиться сообщением


Ссылка на сообщение

вообще я рад что топик превратился из "помогите найти ошибку в пятой строке моего говнокода для говнолабы в говноунивере" в обсуждение чего-то стоящего :)


 

очень крутые котейки


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение
  rubish написал 08.07.2015 в 21:30:
  Tinplz написал 08.07.2015 в 21:17:
ну тут дипкопи - это тупой пример, который наверное ничего общего не имеет с крестами, т.к. там нет рефлексии.

если бы она там была - то он копировал бы экземпляр класса не по ссылке (ссылкам), а по значению.

суть в том, что в одном классе ты создаешь конструктор копирования, а в другом удаляешь. (лол в шарпе даже такого нет. ты конструктор либо создаешь, либо создаешь по умолчанию, либо просто прячешь за прайватом, протектедом за наследованием и дальше наследники могут оказаться в ситуации, когда не может быть конструкторов вообще).

вот мне интересно, если я в классе удалю конструктор копирования и от него унаследуюсь - то наследник перед тем, как дернет конструктор по умолчанию или же просто не скомпилируется?

Есть дипкопи и в плюсах. Когда хранишь указатели вместо значений.

В плюсах тоже можно прятать. Но еще можно было просто декларировать и не имплементировать, поэтому ты можешь запретить его вызов даже из самого класса изнутри.

Если удалишь констуктор, но наследних его будет пытаться вызывать - то не скомпилируется. Дефолтный конструктор копирования это и попытается сделать.

Я тебе это и показал в коде на примере derived1. в derived2 это обошел.

Поделиться сообщением


Ссылка на сообщение
  Tinplz написал 08.07.2015 в 21:40:

Есть дипкопи и в плюсах. Когда хранишь указатели вместо значений.

В плюсах тоже можно прятать. Но еще можно было просто декларировать и не имплементировать, поэтому ты можешь запретить его вызов даже из самого класса изнутри.

Если удалишь констуктор, но наследних его будет пытаться вызывать - то не скомпилируется. Дефолтный конструктор копирования это и попытается сделать.

Я тебе это и показал в коде на примере derived1. в derived2 это обошел.

ну так же скопируются указатели? суть в том, что в шарпе (в жаве наверное так же) твой класс компилируется в тайпобжект. и по сути через рефлексию ты по типу можешь получить все его члены (members: филды, проперти, методы и конструкторы). соответственно ты в рантайме можешь получить информацию о типе и создать этот тип, даже если он не предоставляет интерфейса для своего создания ну или у существующего экземпляра скопировать все филды. в шарпе если что и intellisence работает через рефлексию в студии.

ну тут кстати и ответ на мой вопрос: является ли конструктор копирования чем-то специфичным


Колы я выросту - то хочу буты такым як я

5c8bbc85b99e.gif

 

годные смайлы

Поделиться сообщением


Ссылка на сообщение
  rubish написал 08.07.2015 в 22:07:
  Tinplz написал 08.07.2015 в 21:40:
ну так же скопируются указатели? суть в том, что в шарпе (в жаве наверное так же) твой класс компилируется в тайпобжект. и по сути через рефлексию ты по типу можешь получить все его члены (members: филды, проперти, методы и конструкторы). соответственно ты в рантайме можешь получить информацию о типе и создать этот тип, даже если он не предоставляет интерфейса для своего создания ну или у существующего экземпляра скопировать все филды. в шарпе если что и intellisence работает через рефлексию в студии.

ну тут кстати и ответ на мой вопрос: является ли конструктор копирования чем-то специфичным

Дефолтный конструктор копирования вызовет копирование для всех полей поочереди. Если это поинтер - то скопирует поинтер. Никто не мешает написать свой вариант, и для дипкопи просто одну строчку использовать

field_ptr = new Field(*other.field_ptr);

что вызовет конструктор копирования для этого типа

 

В курсе я как работает рефлекшн, благо не на одних плюсах писал.

Только не стоит забывать что все что есть в шарпах и жавах в том или ином виде было есть и будет в плюсах :)

Поделиться сообщением


Ссылка на сообщение
  Tinplz написал 08.07.2015 в 22:28:

Только не стоит забывать что все что есть в шарпах и жавах в том или ином виде было есть и будет в плюсах :)

что насчет нормального интеллисенса хоть в каком-то иде? :)

Колы я выросту - то хочу буты такым як я

5c8bbc85b99e.gif

 

годные смайлы

Поделиться сообщением


Ссылка на сообщение
  rubish написал 08.07.2015 в 22:32:
  Tinplz написал 08.07.2015 в 22:28:
что насчет нормального интеллисенса хоть в каком-то иде? :)

Говорят получше стал в последней вижле.

Еще слышал что ХКоде с этим все нормально + реалтайм компиляция с клангом. Правда не проверял пока, времени нету.

 

А так со времен вс2008 - VisualAssistX. Меня вполне устраивает. А учитывая что я пират, то вообще бесплатен для моих скромных нужд.

 

Единственное чего плюсам Реально не хватает - это нормальных ошибок при компиляции темплейтов. Вроде stlfilt фиксит это, но у меня так и не хватило терпения его настроить

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...