Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Списки, деревья...


Автор: try_to_get 15.9.2007, 08:32
Это сообщение удалено модератором!

Автор: jonie 15.9.2007, 09:15
Принципы ООП: наследование, инкапсуляция, полиморфизм.
Классы имеют все три признака.
Структуры только 1 (инкапсуляция).
Однако, нам никто не запрещет извращаться и писать деревья и прочее без них 8)... "эмулировать" структуры можно, захватывая память как под структуру, и используя смещения для доступа к полям... написав пару макросов (брррр), вполне можно комфортно жить (хранить только указатель на захваченную память).

Автор: Kuvaldis 15.9.2007, 09:16
try_to_get, 
struct  - это то же самое что и class, только по умолчанию все методы public ( у class - private)
в С++ можно писать и конструкторы, и методы для структур
Напиши какой-нить примитивный класс и поменяй слово class на struct - все будет работать (и с наследованием тоже)

Код

class Foo   // заменить на struct
{
    int  itsX;

public:
    Foo( int x ) : itsX(x) {}
    int GetX() const { return itsX; }
};
 
int main()
{

    Foo  MyFoo(10);

    int num = MyFoo.GetX();
...


Автор: Greeen 15.9.2007, 10:41
try_to_get, предлагаю написать тебе лабу на С, используя структуры. Вопросов никаких возникнуть не должно, т.к. ты сможешь аргументировать свой выбор тем, что "в С нет поддержки ООП".

Автор: yar 15.9.2007, 10:47
ООП - это не "классы" или "структуры" или, например, "инкапсуляция" в отдельности. Это парадигма, охватывающая композицию многих понятий. IMHO, Нельзя говорить фразы, вроде "структура" - это ООП! Или даже "класс" - это ООП! С таким же успехом можно утверждать, что ссылка -- эот ООП, потому что в ООП мы часто обращаемся к объектам по ссылкам.

Если сильно постараться, то и на чистом Си можно написать вполне объектно-ориентированную программу. Может быть даже и на чистом паскале ;). 
Я хочу сказать, что вилка начинает относится к оружию, если начать ей размахивать и тыкать в людей, и перестаёт к нему относиться, когда используется по назначению. Так же и структура в С++ -- всё зависит от контекста.

Автор: try_to_get 15.9.2007, 12:53
Спасибо, огромное, что правильно рассудили, я не совсем был прав, считал, что record(в Pascal) и struct(в С++) похожи!..  smile 
Но, что ООП это не class я знал, с помощью Class'ов мы реализуем ООП 
Спасибо еще раз!  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)