Содержание
- 2. Пример. Реализация += для строк. При конкатенации строк полезно заранее знать длину, чтобы выделять память только
- 3. Канонический вид ++ и -- // --- Префиксные операторы T& T::operator++() // Префиксный вид: { //
- 4. Канонический вид присваивания Предпочтительно объявлять копирующее присваивание для типа Т с одной из следующих сигнатур T&
- 5. class Base { public: Base(int initialValue = 0) : x(initialValue) {} private: int x; } ;
- 6. Перегрузка > для классов ostream& opeartor os for (int i=0; i { for (int j=0; j
- 7. Используйте перегрузку, чтобы избежать неявного преобразования типов Пример: сравнение строк class String { // ... String(
- 8. Избегайте возможностей неявного преобразования типов Две основные проблемы: Они могут проявиться в самых неожиданных местах. Они
- 9. Пусть s1 и s2 — объекты типа String. Все приведенные ниже строки компилируются: int х =
- 10. Не перегружайте без крайней необходимости &&, || и , (запятую) Employee* e = TryToGetEmployee(); if( e
- 11. Отношения в С++ (по силе взаимосвязи) Дружба Наследование “Владение” (композиция, агрегация)
- 12. Должна ли функция быть реализована как метод или друг класса? Если нет выбора - делайте функцию
- 13. Виртуализация функций, не являющихся методами класса class NLComponent{ public: virtual ostream& print(ostream&s) const = 0; …
- 14. Открытое наследование как моделирования отношения «является» (“is a”) Каждый объект типа D(derived) является также объектом типа
- 15. class Bird { public: virtual void fly(); // птицы умеют летать ... }; class Penguin: public
- 16. Другой вариант – лучше ли? void error(const std::string& msg); // определено в другом месте class Penguin:
- 17. Должен ли класс Square (квадрат) открыто наследовать классу Rectangle (прямоугольник)?
- 18. class Rectangle { public: virtual void setHeight(int newHeight); virtual void setWidth(int newWidth); virtual int height() const;
- 19. class Square: public Rectangle {…}; Square s; ... assert(s.width() == s.height()); // должно быть справедливо для
- 20. Принцип подстановки Барбары Лисков (Liskov Substitution Principle, LSP) Пусть q(x) является свойством, верным относительно объектов x
- 22. Скачать презентацию