nest21.c

来自「this is a gcc file, you can download it 」· C语言 代码 · 共 97 行

C
97
字号
// GROUPS passed nested-classes#include <iostream>#include <cstdio>#include <cstring>static char output[1024];class BDDRetrace {public:    class Dump {    public:	virtual Dump& operator<<(char c) = 0;	virtual Dump& operator<<(int i) = 0;	virtual Dump& operator<<(double r) = 0;    };    class Dump1: public Dump {    public:	Dump& operator<<(char c);	Dump& operator<<(int i);	Dump& operator<<(double r);    };};class Dump2: public BDDRetrace::Dump {public:    BDDRetrace::Dump& operator<<(char c);    BDDRetrace::Dump& operator<<(int i);    BDDRetrace::Dump& operator<<(double r);};BDDRetrace::Dump&BDDRetrace::Dump1::operator<<(char c){ char tempout[1024];  std::sprintf(tempout, "%s%s%c", output, "1-", c);  std::strcpy(output, tempout);  return *this;}BDDRetrace::Dump&BDDRetrace::Dump1::operator<<(int i){ char tempout[1024];  std::sprintf (tempout, "%s%s%d", output, "1-", i);  std::strcpy (output, tempout);  return *this; }BDDRetrace::Dump&BDDRetrace::Dump1::operator<<(double r){ char tempout[1024];  std::sprintf (tempout, "%s%s%1.0f", output, "1-", r);  std::strcpy (output, tempout);  return *this; }BDDRetrace::Dump&Dump2::operator<<(char c){ char tempout[1024];  std::sprintf (tempout, "%s%s%c", output, "2-", c);  std::strcpy (output, tempout);  return *this; }BDDRetrace::Dump&Dump2::operator<<(int i){ char tempout[1024];  std::sprintf (tempout, "%s%s%d", output, "2-", i);  std::strcpy (output, tempout);  return *this; }BDDRetrace::Dump&Dump2::operator<<(double r){ char tempout[1024];  std::sprintf (tempout, "%s%s%1.0f", output, "2-", r);  std::strcpy (output, tempout);  return *this; }int main(){    BDDRetrace::Dump1 d1;    Dump2 d2;    std::sprintf (output, " ");    d1 << 'a';    d1 << 1;    d1 << 1.0;    d2 << 'a';    d2 << 1;    d2 << 1.0;    if (std::strcmp (output, " 1-a1-11-12-a2-12-1") == 0)      std::printf ("PASS\n");    else      { std::printf ("FAIL\n"); return 1; }    return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?