Топ 10 Код С/С++

10. Оператор goto. Его ругают или настраивают против него почти все известные мне учебники. Такое неоднозначное отношение сложилось очень давно, в основном из-за случаев когда локализация применения оператора goto — более чем страница. Пройдя круг от учебника к реальности и обратно, убеждаешься: пусть живет goto. Но сам, по привычке, используешь его кастрированную версию — switch.

В принципе goto присутствует в серьезных проэктах, например в библиотеке MFC

9. Функция возвращающая указатель на саму себя.

В принципе чем — то напоминает шаблон интерфейса:

#include <iostream>
#include <conio.h>
class FuncPtrProxi;
typedef FuncPtrProxi (*FuncPtr)();
class FuncPtrProxi
{
  public:
    FuncPtrProxi(FuncPtr theP) : P(theP) {}
    operator FuncPtr() {return P;}
  private:
    FuncPtr P;
};
FuncPtrProxi f() {
  std::cout<<"return self-func pointer"<<std::endl; return f;
}
int main(int argc, char* argv[])
{
 FuncPtr p=f();
 p();
 getch();
 return 0;
}

8. Шаблон интерфейса

В современном программировании шаблоны(паттерны) проектирования вызывают разные противоречивые реакции,

но этот код мне однозначно нравится.

#include <conio.h>
#include <iostream>
class Interface   {
  public:
    virtual void f()=0;
    virtual ~Interface(){};
};
class A : public Interface {
  public:
    void f() {std::cout<<"class A: f"<<std::endl;}
};
class B : public Interface {
  public :
    void f() {std::cout<<"class B: f"<<std::endl;}
};
int main(int argc, char* argv[])
{
  Interface * theInterface;
  A * a=new A;
  B * b=new B;

theInterface=a;
  theInterface->f();

theInterface=b;
  theInterface->f();

getch();
  delete a;
  delete b;
  return 0;
}

...

Увесь код родовід веде з книг та всесвітнього павутиння...

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

#include < conio.h>

ой как никрасива...бррр...

Підписатись на коментарі