C++Precept和NV类的封装

来源:计算机等级考试    发布时间:2012-08-29    计算机等级考试视频    评论

  导读:考试大计算机等级考试网校助您顺利通过2010年全国计算机等级考试! 点击进入考试大网校》》C++ Precept和NV类的封装,请看下面考试大为您收集的代码:

  1 #pragma once

  2 #include "../String/NWString.h"

  3 #include "../AutoPtr/AutoPtr.h"

  4 #include "../Common/List.h"

  5

  6 #define Type_Match_Content                                                0        // 匹配值

  7 #define Type_Match_Rule                                                    1        // 匹配一条表达式

  8 #define Type_Or                                                           -1

  9 #define Type_Choose                                                       -2

  10 #define Type_Loop_0                                                       -3

  11 #define Type_Loop_1                                                       -4

  12 #define Type_Opt                                                       -5

  13 #define Type_LQ                                                           -6

  14 #define Type_RQ                                                           -7

  15

  16 class Precept

  17 {

  18 public:

  19     int Left;

  20     List<int> Right;

  21

  22     Precept() : Left(0){}

  23     Precept(int L,List<int> R) : Left(L),Right(R){}

  24

  25     // +Precept

  26     friend NAutoPtr<Precept> operator+(NAutoPtr<Precept> P)

  27     {

  28         NAutoPtr<Precept> p = new Precept;

  29         p->Right.Add(Type_Loop_1);

  30         p->Right.Add(Type_LQ);

  31         p->Right.Add(P->Right);

  32         p->Right.Add(Type_RQ);

  33         return p;

  34     }

  35

  36     // Precept + Precept

  37     friend NAutoPtr<Precept> operator+(NAutoPtr<Precept> P1,NAutoPtr<Precept> P2)

  38     {

  39         NAutoPtr<Precept> p = new Precept;

  40         p->Right.Add(P1->Right);

  41         p->Right.Add(P2->Right);

  42         return p;

  43     }

  44

  45     // *Precept

  46     friend NAutoPtr<Precept> operator*(NAutoPtr<Precept> P)

  47     {

  48         NAutoPtr<Precept> p = new Precept;

  49         p->Right.Add(Type_Loop_0);

  50         p->Right.Add(Type_LQ);

  51         p->Right.Add(P->Right);

  52         p->Right.Add(Type_RQ);

  53         return p;

  54     }

  55

上一页1234下一页

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答