【问题标题】:Two objects that contain objects of the other object包含另一个对象的对象的两个对象
【发布时间】:2014-04-09 06:40:02
【问题描述】:

所以从标题中你可以得到部分想法。我正在为 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

【问题讨论】:

    标签: c++ class parsing destructor


    【解决方案1】:

    莫恩,

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

    可能是这样的:

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

    Greez Albjeno

    【讨论】:

      猜你喜欢
      • 2018-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-17
      • 1970-01-01
      相关资源
      最近更新 更多