23-10-2002 21:29
Пиша на каком-нибудь языке программирования или разметки, не оборачивай каждую конструкцию языка в более удобную лично тебе.

Rationale: Когда кто-то будет разбираться, что такое \Q{x}{y} в твоём TeX’овом документе, он скажет в твой адрес много разных слов.

#define DECLARE_DEFAULT_CONSTRUCTOR THIS(void)
#define DECLARE_CONSTRUCTOR THIS
#define DECLARE_DESTRUCTOR virtual ~THIS(void)
#define DECLARE_COPY_CONSTRUCTOR THIS(const THIS& that)
#define DEFAULT_CONSTRUCTOR THIS::THIS(void)
#define CONSTRUCTOR THIS::THIS
#define DESTRUCTOR THIS::~THIS(void)
#define COPY_CONSTRUCTOR(THIS) THIS::THIS(const THIS& that)
#define METHOD THIS::
#define BEGIN { \
  char _this_method[] = __FUNC__; \
  clog << setw(prefix++) << "" << ">" << _this_method << endl;
#define END \
  clog << setw(--prefix) << "" << "<" << _this_method << endl; \
}

#define THIS MyClass
class MyClass
{
public:
  DECLARE_CONSTRUCTOR(int anInt);
  DECLARE_DESTRUCTOR;
  DECLARE_COPY_CONSTRUCTOR;
  int getInt(void);
  void setInt(int anInt);
private:
  int itsInt;
};

CONSTRUCTOR(int anInt): itsInt(anInt)
BEGIN
END;

DESTRUCTOR
BEGIN
END;

COPY_CONSTRUCTOR: itsInt(that.itsInt)
BEGIN
END;

void METHOD setInt(int anInt)
BEGIN
  itsInt = anInt;
END;

int METHOD getInt(void)
BEGIN
  return itsInt;
END;


Это — C++. Я даже думаю, что после маленькой доработки напильником это скомпилируется. Но — этот стиль программирования, скорее всего, будет чужд большинству C++-программистов. IDE же, скажем, вообще тихо забьёт на все попытки быстро поперемещаться по методам такому класса.
Комментарии:
Камрад
Да, в очередной раз убедился – что жутко далёк я от идеологи ООП и С++ в частности. Нифига не понял. В чём смысл то хоть критики был?

“Пиша на каком-нибудь языке …” – звучит =))
25-10-2002 09:33
Камрад с блокнотиком
Да дали мне документ в LaTeX’е. Он сначала из внешнего файла (которого мне не дали) грузит макросы, а потом использует их вместо стандартных команд. А я должен читать эти 700 строк и догадываться, что \* — это \cdot (·), \. — \dots (…), а \Q{4}{2} — это \sqrt[4]{2} (корень четвёртой степени из двух).
Закрыть