包含另一个对象的对象的两个对象

时间:2014-04-09 06:40:03

标签: c++ class parsing destructor

所以从标题中你可以得到这个想法的一部分。我正致力于为c ++ /离散数学类编写解析器。我的问题是我无法让xcode识别我的某些对象。

因此参数是String,Id或Expression,由以下对象

表示
    ParameterClass :: ParameterClass(Token UNO)
   {
    myToken = UNO;
   }
   ParameterClass :: ParameterClass(ExpressionClass DOS)
   {
    myExpression = DOS;
   }
   ParameterClass :: ParameterClass()
    {

   }
   ParameterClass :: ~ParameterClass()
  {


  }

表达式由以下类

表示
  ExpressionClass :: ExpressionClass(Token UNO, ParameterClass DOS, OperatorClass TRES,       ParameterClass CUATRO, Token CINCO)
  {
    myLEFT = UNO;
    paramUNO = DOS;
operatorUNO = TRES;
paramDOS = CUATRO;
myRIGHT = CINCO;

 }
  ExpressionClass :: ~ExpressionClass()
 {

虽然它在标题中识别它们,但ExpressionClass拒绝使用参数DOS和CUATRO进行构造。

有什么想法?我还注意到在这两个类中,析构函数正在接收警告/错误声明中的异常规范与先前的声明不匹配。

提前感谢您的智慧! -MJ

1 个答案:

答案 0 :(得分:0)

莫因,

如果您发布了类声明,那就太好了。因为好像两个类都有另一个类的实例作为成员,所以我想知道这个代码是否会编译。 ParameterClass::myExpression等需要成为指针,因此您可以在头文件中转发ExpressionClass,反之亦然。然后,您可以相应地更改参数类型。

可能是这样的:

// parameterclass.h

class ExpressionClass;                     // foward-declaration
class Parameterclass
{
    ExpressionClass* myExpression;
    ParameterClass(ExpressionClass* DOS);  // por favor, utiliza nombres significativos
    ...
}

Greez Albjeno