Z_>>А що именно про это нужно знать? По виду вопросы — проще некуда. Вот допустим я ответил бы что класс отличается от структуры тем, что в классе есть возможность сделать частный, скрытый раздел, который будет недоступен при обращении к классу из функций других классов(ну там есть специальные средства — можно друзей объявить, отнаследоваться, но не суть). Это правильный ответ?
cli>Ответ не правильный. Различие между классом и структурой в типе видимости членов по умолчанию, у класса private, у структуры public.
То есть своими словами не вариант?) Если у человека представление на уровне "в классе после public: — видимые члены, а в после private: — частные, а в структуре все public", то такой человек собеседование пролетает?
Z_>>А що именно про это нужно знать? По виду вопросы — проще некуда. Вот допустим я ответил бы что класс отличается от структуры тем, что в классе есть возможность сделать частный, скрытый раздел, который будет недоступен при обращении к классу из функций других классов(ну там есть специальные средства — можно друзей объявить, отнаследоваться, но не суть). Это правильный ответ?
D>издеваешься? нет, конечно. В структурах С++ можно сделать то же самое
Не знал)
Здравствуйте, dZentle_man, Вы писали:
Z_>То есть своими словами не вариант?) Если у человека представление на уровне "в классе после public: — видимые члены, а в после private: — частные, а в структуре все public", то такой человек собеседование пролетает?
Своими слова корявое, не полное и противоречивое определение можно бабушкам на лавочке рассказать. На собеседовании пролетишь.
cli>>Ответ не правильный. Различие между классом и структурой в типе видимости членов по умолчанию, у класса private, у структуры public. Z_>То есть своими словами не вариант?) Если у человека представление на уровне "в классе после public: — видимые члены, а в после private: — частные, а в структуре все public", то такой человек собеседование пролетает?
но ты смотри, ты уже неправильно говоришь.. и там еще есть различие, но не суть. и своими словами получается что собеседователи начинают волноваться подозревая в незнакомой и в общем непринятой терминологии незнание.. лучше говорить общими формулировками таки
Z_>>То есть своими словами не вариант?) Если у человека представление на уровне "в классе после public: — видимые члены, а в после private: — частные, а в структуре все public", то такой человек собеседование пролетает?
cli>Своими слова корявое, не полное и противоречивое определение можно бабушкам на лавочке рассказать. На собеседовании пролетишь.
Так вот в чем подвох..) Вам оказывается тоже шашечки..
Здравствуйте, keenn, Вы писали:
cli>>>Ответ не правильный. Различие между классом и структурой в типе видимости членов по умолчанию, у класса private, у структуры public. Z_>>То есть своими словами не вариант?) Если у человека представление на уровне "в классе после public: — видимые члены, а в после private: — частные, а в структуре все public", то такой человек собеседование пролетает?
K>но ты смотри, ты уже неправильно говоришь.. и там еще есть различие, но не суть. и своими словами получается что собеседователи начинают волноваться подозревая в незнакомой и в общем непринятой терминологии незнание.. лучше говорить общими формулировками таки
Та я просто никогда на формулировки не онанировал, а память у меня плохая. Но все равно, спасибо за обратную связь, буду иметь в виду.
Здравствуйте, CreatorCray, Вы писали:
cli>>Мне тоже довелось лет так 15 назад проги на ассемблере на бумаге писать/читать, очень развивает внимательность и усидчивость...) CC>Мсье мазохист.
у нас например был всего один компкласс на всю школу, а желающих поработать в нём — вся школа, несколько сотен человек. на тех компах-то и ассемблера не было, так что всё равно ручками пришлось бы переводить
Здравствуйте, dZentle_man, Вы писали:
cli>>Ответ не правильный. Различие между классом и структурой в типе видимости членов по умолчанию, у класса private, у структуры public. Z_>То есть своими словами не вариант?) Если у человека представление на уровне "в классе после public: — видимые члены, а в после private: — частные, а в структуре все public", то такой человек собеседование пролетает?
конечно, пролетает, особенно если прикладник. уличён в самом страшном преступлении — он не онанировал на C++ Report
Здравствуйте, CreatorCray, Вы писали:
CC>Здравствуйте, мыщъх, Вы писали:
М>>автоматический вызов деструктора часто недостаточен и при выходе из функции зачастую требуется совершить дополнительные действия. например, не просто закрыть недописанный файл, но и удалить его. CC>не позорься, а! Что тебе мешает в деструкторе удалить файл?
такое поведение деструктора еще хуже, чем return в середине функции. потому как код становится совсем неинтуитивным.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
cli>>>Ответ не правильный. Различие между классом и структурой в типе видимости членов по умолчанию, у класса private, у структуры public. Z_>>То есть своими словами не вариант?) Если у человека представление на уровне "в классе после public: — видимые члены, а в после private: — частные, а в структуре все public", то такой человек собеседование пролетает?
BZ>конечно, пролетает, особенно если прикладник. уличён в самом страшном преступлении — он не онанировал на C++ Report
Жаль, очень жаль.
Здравствуйте, Abyx, Вы писали:
A>Здравствуйте, мыщъх, Вы писали:
М>>такое поведение деструктора еще хуже, чем return в середине функции. потому как код становится совсем неинтуитивным.
A>TempFile, AutoDeletableFile, всё интуитивно понятно
temp файл можно и так создать через fopen. а тут речь идет о том, что перед выходом из функции требуется совершить некоторые действия, варьирующиеся в зависимости от изменичивой логики кода. это может быть все что угодно:
а) если произошла ошибка записи в файл -- удаляем файл, в противном случае возвращаем его дескриптор;
б) если от нас ожидают именно дескриптор, а не файловый объект, то прикрутить к нему дескриптор не получиться;
в) перед возвратом дескриптора требуется переместить указатель текущей позиции файла на определенную позицию;
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
М>а тут речь идет о том, что перед выходом из функции требуется совершить некоторые действия, варьирующиеся в зависимости от изменичивой логики кода. это может быть все что угодно: М>а) если произошла ошибка записи в файл -- удаляем файл, в противном случае возвращаем его дескриптор; М>б) если от нас ожидают именно дескриптор, а не файловый объект, то прикрутить к нему дескриптор не получиться; М>в) перед возвратом дескриптора требуется переместить указатель текущей позиции файла на определенную позицию;
локальная структура с кастомным деструктором -- полностью удовлетворяет нуждам.
То есть грубо говоря, если обычно у с++ников класс состоит из функций, то тут наоборот, функция раскручивается вокруг класса.
М>>а тут речь идет о том, что перед выходом из функции требуется совершить некоторые действия, варьирующиеся в зависимости от изменичивой логики кода. это может быть все что угодно: М>>а) если произошла ошибка записи в файл -- удаляем файл, в противном случае возвращаем его дескриптор; М>>б) если от нас ожидают именно дескриптор, а не файловый объект, то прикрутить к нему дескриптор не получиться; М>>в) перед возвратом дескриптора требуется переместить указатель текущей позиции файла на определенную позицию;
D>локальная структура с кастомным деструктором -- полностью удовлетворяет нуждам. D>То есть грубо говоря, если обычно у с++ников класс состоит из функций, то тут наоборот, функция раскручивается вокруг класса.
согласен. можно создать класс-пустышку и запихнуть в его деструктор все действия, которые мы хотим выполнить по выходу из функции (это если я правильно понял вашу идею, в плюсах, увы, не силен).
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, мыщъх, Вы писали:
М>>>такое поведение деструктора еще хуже, чем return в середине функции. потому как код становится совсем неинтуитивным.
A>>TempFile, AutoDeletableFile, всё интуитивно понятно
М>temp файл можно и так создать через fopen. а тут речь идет о том, что перед выходом из функции требуется совершить некоторые действия, варьирующиеся в зависимости от изменичивой логики кода. это может быть все что угодно:
речь о том что по названию класса можно определить его поведение.
класс File не удаляет файл в деструкторе,
а класс TempFile — удаляет файл в деструкторе,
М>а) если произошла ошибка записи в файл -- удаляем файл, в противном случае возвращаем его дескриптор; М>б) если от нас ожидают именно дескриптор, а не файловый объект, то прикрутить к нему дескриптор не получиться; М>в) перед возвратом дескриптора требуется переместить указатель текущей позиции файла на определенную позицию;
// псевдокод
HFILE func(string name)
{
TempFile file(name);
err_code e;
file.write_something(e);
if(e)
return INVALID_FILE_HANDLE; // ~TempFile удаляет файл
file.seek(0);
return file.release_handle(); // переменная file больше не владеет дескриптором, ~TempFile ничего не делает
}
Здравствуйте, cli, Вы писали:
Z_>>А що именно про это нужно знать? По виду вопросы — проще некуда. Вот допустим я ответил бы что класс отличается от структуры тем, что в классе есть возможность сделать частный, скрытый раздел, который будет недоступен при обращении к классу из функций других классов(ну там есть специальные средства — можно друзей объявить, отнаследоваться, но не суть). Это правильный ответ? cli>Ответ не правильный. Различие между классом и структурой в типе видимости членов по умолчанию, у класса private, у структуры public.
не только.. есть ещё небольшие редковстречаемые отличия..
Z_>>>А що именно про это нужно знать? По виду вопросы — проще некуда. Вот допустим я ответил бы что класс отличается от структуры тем, что в классе есть возможность сделать частный, скрытый раздел, который будет недоступен при обращении к классу из функций других классов(ну там есть специальные средства — можно друзей объявить, отнаследоваться, но не суть). Это правильный ответ? cli>>Ответ не правильный. Различие между классом и структурой в типе видимости членов по умолчанию, у класса private, у структуры public.
F>не только.. есть ещё небольшие редковстречаемые отличия..
Ну он просто сказал какой ответ был бы засчитан. Речь же как раз про то и шла, что он не требует на собеседованиях странного.
Здравствуйте, CreatorCray, Вы писали:
cli>>Мне тоже довелось лет так 15 назад проги на ассемблере на бумаге писать/читать, очень развивает внимательность и усидчивость...) CC>Мсье мазохист.
в школе многие такой фигнёй страдали.. не учителку же слушать
Здравствуйте, neFormal, Вы писали:
F>не только.. есть ещё небольшие редковстречаемые отличия..
Какие? Кроме того, что наследование для классов по-умолчанию приватное, а для сруктур публичное, и того, что в шаблонах вместо typename можно писать class, но нельзя struct (хотя это отличие ключевых слов, а не самих классов и структур).