Kant #401 16 января 2013 Она запускалась как 5 студий одновременно. И работала так жеНу и там плюсы корявые. Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью. Поделиться сообщением Ссылка на сообщение
rubish #402 16 января 2013 ну я тоже на работе сижутоже чекаю пд, тоже пишу код так что знаю как ты работаешь у тебя тоже в левой части экрана ютуб / фильм, а в правой код? на нормальной работе у разработчика 2 монитора А разве HTML5 - это не просто связка последних версий HTML+CSS+JS?ну обычно когда говорят о html5 - то подразумевают и свг ещё ко всему. хотя в жаваскрипте вроде бы ничего не поменялось Колы я выросту - то хочу буты такым як я годные смайлы Поделиться сообщением Ссылка на сообщение
Tinplz #403 16 января 2013 ну я тоже на работе сижутоже чекаю пд, тоже пишу код так что знаю как ты работаешь у тебя тоже в левой части экрана ютуб / фильм, а в правой код? на нормальной работе у разработчика 2 монитора Пробовал - глаза болят, от того что часто внимание переводил (2х24). Иногда, конечно, чувствуется, что был бы полезен второй, но это очень небольшая часть от всего времени, поэтому и так нормально. Поделиться сообщением Ссылка на сообщение
Kant #404 16 января 2013 Очень странно.Все проблемы со зрением из-за компа как раз из-за того, что глаза не фокусируются на разную дистанцию. А у тебя от зарядки для глаз глаза заболели Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью. Поделиться сообщением Ссылка на сообщение
mos-tal #405 17 января 2013 Скажите а инкапсуляция это чтото типа: class MasterCapsul{public:void ChangeInt(int x){a=x;}void ChangeFloat(float x){b=x;}void ChangeChar(char x){c=x;}void ShowInt(){cout<<a<<endl;} private:int a;float b;char c;}; Поделиться сообщением Ссылка на сообщение
Tinplz #406 17 января 2013 Скажите а инкапсуляция это чтото типа: class MasterCapsul{public:void ChangeInt(int x){a=x;}void ChangeFloat(float x){b=x;}void ChangeChar(char x){c=x;}void ShowInt(){cout<<a<<endl;} private:int a;float b;char c;}; http://lmgtfy.com/?q=%D0%98%D0%BD%D0%BA%D0%B0%D0%BF%D1%81%D1%83%D0%BB%D1%8F%D1%86%D0%B8%D1%8F Поделиться сообщением Ссылка на сообщение
mos-tal #407 17 января 2013 ох вы пиздатые... читал я тот гугл Поделиться сообщением Ссылка на сообщение
Kant #408 17 января 2013 Инкапсуляция - скрытие логики и данных, которые не должна быть видны снаружи, а нужны только для реализации класса.Чтобы у человека, который использует класс, не было возможностей творить с ним разную хуйню. Плюс упрощение интерфейса доступа. И обычно методы для доступа к полям называют Get... и Set..., если только не надо какое-то особенное действие.Ну и поля полезно еще скрывать и тем, что при нужде ты сможешь поменять полностью реализацию хранения информации, оставив весь остальной код без изменений, тк интерфейс метода доступа не поменялся. Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью. Поделиться сообщением Ссылка на сообщение
TheDeadSkin #409 17 января 2013 хз как где, а в шарпе есть встроенная конструкция get/set для этих целейпример class Prodota{ private int ping = 0; public int Ping { get { return ping; } // для получения значения set { ping = value; } // для установки значения }} Поделиться сообщением Ссылка на сообщение
Kant #410 17 января 2013 Да. Плюсы обделены наличием встроенных свойств. Но в принципе не сильно важно. Свой такой метод пишется на 30 секунд дольше максимум. Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью. Поделиться сообщением Ссылка на сообщение
TheDeadSkin #411 17 января 2013 угу, но так гораздо удобнее использовать как по мне prodota.Ping = 1; >>> prodota.SetPing(1);Write(prodota.Ping); >>> Write(prodota.GetPing()); Поделиться сообщением Ссылка на сообщение
Kant #412 17 января 2013 Это да Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью. Поделиться сообщением Ссылка на сообщение
Ubububu #413 17 января 2013 (изменено) а если у тебя геттер/сеттер не просто дают/записывают значение, но и вычисляют что-нибудь? А точнее, что если тебе потом необходимо будет это поле усложнить. Изменено 17 января 2013 пользователем Ubububu Поделиться сообщением Ссылка на сообщение
TheDeadSkin #414 17 января 2013 а если у тебя геттер/сеттер не просто дают/записывают значение, но и вычисляют что-нибудь? А точнее, что если тебе потом необходимо будет это поле усложнить.берёшь и усложняешьset {if (value < 0 || value > 10) throw new InvalidArgumentException();ping = value;} Поделиться сообщением Ссылка на сообщение
Tinplz #415 17 января 2013 а если у тебя геттер/сеттер не просто дают/записывают значение, но и вычисляют что-нибудь? А точнее, что если тебе потом необходимо будет это поле усложнить.easy. #define AFTERGET(x) Get ## x#define AFTERSET(x) Set ## x #define GENERATE_FIELD(FIELD_TYPE,FIELD,PROPERTY_VISIBLE_NAME_) \protected: \FIELD_TYPE FIELD; \public: \FIELD_TYPE AFTERGET(PROPERTY_VISIBLE_NAME_)() { return FIELD; } \void AFTERSET(PROPERTY_VISIBLE_NAME_)(FIELD_TYPE NewValue){ this->FIELD = NewValue; } class A {GENERATE_FIELD(int,m_intvalue,MySweetInt);}; class B : public A {public:void SetMySweetInt(decltype(m_intvalue) vvv){m_intvalue = 123123;}}; int _tmain(int argc, _TCHAR* argv[]) {A a;a.SetMySweetInt(1); // = 1; B b;b.SetMySweetInt(33); // = 123123; Поделиться сообщением Ссылка на сообщение
Ubububu #416 17 января 2013 А, это в шарпике есть такой сахар, но возьмём цпп, к примеру. а если у тебя геттер/сеттер не просто дают/записывают значение, но и вычисляют что-нибудь? А точнее, что если тебе потом необходимо будет это поле усложнить.easy. #define AFTERGET(x) Get ## x#define AFTERSET(x) Set ## x #define GENERATE_FIELD(FIELD_TYPE,FIELD,PROPERTY_VISIBLE_NAME_) \protected: \FIELD_TYPE FIELD; \public: \FIELD_TYPE AFTERGET(PROPERTY_VISIBLE_NAME_)() { return FIELD; } \void AFTERSET(PROPERTY_VISIBLE_NAME_)(FIELD_TYPE NewValue){ this->FIELD = NewValue; } class A {GENERATE_FIELD(int,m_intvalue,MySweetInt);}; class B : public A {public:void SetMySweetInt(decltype(m_intvalue) vvv){m_intvalue = 123123;}}; int _tmain(int argc, _TCHAR* argv[]) {A a;a.SetMySweetInt(1); // = 1; B b;b.SetMySweetInt(33); // = 123123; Я про пример, что prodota.Ping = 1; а не через геттер/сеттер. Поделиться сообщением Ссылка на сообщение
Tinplz #417 17 января 2013 А, это в шарпике есть такой сахар, но возьмём цпп, к примеру. а если у тебя геттер/сеттер не просто дают/записывают значение, но и вычисляют что-нибудь? А точнее, что если тебе потом необходимо будет это поле усложнить.easy. #define AFTERGET(x) Get ## x#define AFTERSET(x) Set ## x #define GENERATE_FIELD(FIELD_TYPE,FIELD,PROPERTY_VISIBLE_NAME_) \protected: \FIELD_TYPE FIELD; \public: \FIELD_TYPE AFTERGET(PROPERTY_VISIBLE_NAME_)() { return FIELD; } \void AFTERSET(PROPERTY_VISIBLE_NAME_)(FIELD_TYPE NewValue){ this->FIELD = NewValue; } class A {GENERATE_FIELD(int,m_intvalue,MySweetInt);}; class B : public A {public:void SetMySweetInt(decltype(m_intvalue) vvv){m_intvalue = 123123;}}; int _tmain(int argc, _TCHAR* argv[]) {A a;a.SetMySweetInt(1); // = 1; B b;b.SetMySweetInt(33); // = 123123; Я про пример, что prodota.Ping = 1; а не через геттер/сеттер.ну тут ты задаешь полю - значит переписывай код. как таковых геттеров сеттеров в плюсах нету. Да и не нужны они: в с++ много вариантов передачи параметров, иногда лучше копировать, иногда через конст реф, иногда просто реф. сейчас вообще можно перемещать через move. Ради оптимизации приходится чем то жертвовать ))) Поделиться сообщением Ссылка на сообщение
TheDeadSkin #418 17 января 2013 А, это в шарпике есть такой сахар, но возьмём цпп, к примеру....Я про пример, что prodota.Ping = 1; а не через геттер/сеттер.ну вызов prodota.Ping = 1; это аналог prodota.SetPing(1);значение после = это как аргумент метода и ничего более Поделиться сообщением Ссылка на сообщение
Tinplz #419 17 января 2013 А, это в шарпике есть такой сахар, но возьмём цпп, к примеру....Я про пример, что prodota.Ping = 1; а не через геттер/сеттер.ну вызов prodota.Ping = 1; это аналог prodota.SetPing(1);значение после = это как аргумент метода и ничего болеевот что шарп делает с людьми.им похуй на способы передачи аргумента в функцию, ведь СИШАРП СДЕЛАИТ ВСЕ ЗА МИНЯ Поделиться сообщением Ссылка на сообщение
TheDeadSkin #420 17 января 2013 а какой смысл о них думать, если мне например нужно только установить значение поля (или получить его) предварительно его мб чем-то проверив? Поделиться сообщением Ссылка на сообщение