Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

01.03.2008, 01:09
|
|
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме: 2187381
Репутация:
518
|
|
пишут и так и так встречал оба варианта.... поэтому как нравится.... вот к примеру мне не нраивтся ООП ваапще.... дык я и не "кашляю" даже 8))))
... доходит до смешного, если мну нужен код.... я выдираю из классов и делаю понятные только мне функции и структуры
|
|
|

01.03.2008, 02:09
|
|
Постоянный
Регистрация: 12.04.2007
Сообщений: 413
Провел на форуме: 3578578
Репутация:
275
|
|
Меня лично учили так(Дейтелы пишут также): нужно отделять определение(интерфейс) от реализации. В объявлении класса не должна находиться реализация методов. Т.е. внутри определения класса - только прототипы методов. Класс - это конечный программный продукт. Клиентам, которые пользуются классом, совсем не обязательно видеть, как реализованы методы. Им нужно знать какими методами можно воспользоваться и какие результаты будут получены. Поэтому внутри класса методы должны находиться в следующем порядке: сначала public, далее protected, и лишь потом private.
Цитата из Дейтелов:
Информация, являющаяся важной для интерфейса класса, должна включаться в заголовочный файл. Информация, которая будет использоваться только внутри класса и не потребуется клиентам, должна находиться в неопубликованном исходном файле. Это еще один пример принципа минимума привилегий.
Клиентам класса не обязательно видеть его исходный код для того, чтобы пользоваться этим классом.Однако клиентам необходимо иметь возможность компоноваться с объектным кодом класса.
Т.е. для класса создаем 2-а файла: .cpp(с реализацией методов) и .h(с объявлением класса). В свои включаем хедер, проект собираем вместе с файлом .cpp. Это не касается встроенных функций. Они должны находиться в объявлении класса. И ещё нужно использовать директивы препроцессора #ifndef, #define, #endif чтобы не допускать повторного включения заголовочных файлов.
P.S. Страуструп:
Хорошо спроектированный тип, определяемый пользователем, отличается от встроенного только тем, как он определён, а не тем, как он исползуется.
Последний раз редактировалось Forcer; 01.03.2008 в 02:15..
|
|
|

01.03.2008, 02:44
|
|
Познающий
Регистрация: 09.09.2007
Сообщений: 66
Провел на форуме: 188412
Репутация:
41
|
|
Сообщение от Forcer
Меня лично учили так(Дейтелы пишут также): нужно отделять определение(интерфейс) от реализации. В объявлении класса не должна находиться реализация методов. Т.е. внутри определения класса - только прототипы методов. Класс - это конечный программный продукт. Клиентам, которые пользуются классом, совсем не обязательно видеть, как реализованы методы. Им нужно знать какими методами можно воспользоваться и какие результаты будут получены.
Спасибо, т.е. все уперается в инкапсюляцию...
А вот конструкторы и деструкторы описываются в теле класса?
|
|
|

01.03.2008, 03:13
|
|
Постоянный
Регистрация: 12.04.2007
Сообщений: 413
Провел на форуме: 3578578
Репутация:
275
|
|
Нет. Вся реализация, в том числе конструкторов и деструкторов, вне объявления класса. Хотя если вы пишите небольшой класс, возможно и не стоит строго следовать всем канонам, но зато это войдёт у вас в привычку.
|
|
|

01.03.2008, 11:15
|
|
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме: 6490435
Репутация:
2290
|
|
Меня лично учили так(Дейтелы пишут также): нужно отделять определение(интерфейс) от реализации. В объявлении класса не должна находиться реализация методов. Т.е. внутри определения класса - только прототипы методов. Класс - это конечный программный продукт. Клиентам, которые пользуются классом, совсем не обязательно видеть, как реализованы методы. Им нужно знать какими методами можно воспользоваться и какие результаты будут получены.
Справедливо только для C++. ИМХО это крайне неправильно(ну в других языках даже такой возможности нет), но если так не делать, появится куча ошибок при создании проекта, когда один класс используется в нескольких.
Связано с тем, что в С++ нельзя скомпилить файл, не зная прототипов.
|
|
|

01.03.2008, 13:25
|
|
Banned
Регистрация: 24.08.2007
Сообщений: 201
Провел на форуме: 983157
Репутация:
424
|
|
Где можно скачать исходники джойнера на С++?
|
|
|

01.03.2008, 18:35
|
|
Новичок
Регистрация: 10.12.2007
Сообщений: 12
Провел на форуме: 304510
Репутация:
16
|
|
Есть ли у кого нибудь исходники калькулятора на С++?
|
|
|

02.03.2008, 18:55
|
|
Постоянный
Регистрация: 23.11.2007
Сообщений: 342
Провел на форуме: 1215706
Репутация:
310
|
|
Помогите написать такой код на C#:
Чтобы на каждый тик таймера выделялась следующая буква из текстогого поля...
|
|
|

02.03.2008, 19:46
|
|
Новичок
Регистрация: 03.02.2008
Сообщений: 5
Провел на форуме: 11617
Репутация:
0
|
|
Нужна помощь в C#
Надо сделать таблицу как в excel'e
Скажем чтоб было 3 строки и 10 столбцов.
Подскажите плз.
|
|
|

02.03.2008, 20:00
|
|
Участник форума
Регистрация: 02.02.2008
Сообщений: 106
Провел на форуме: 594791
Репутация:
55
|
|
Сообщение от SHLAK
Есть ли у кого нибудь исходники калькулятора на С++?
это подходит? 
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|