所以从标题中你可以得到这个想法的一部分。我正致力于为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
答案 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