Bison未正确实例化类 我有一个BISO/Flex C++分析器,它有一个类,我写的是它的一些规则的返回类型(在解析器文件中定义,如代码> %型ExpR)。然后(通常)存储类实例,并在以后打印出来。当类实例从一个规则传递到另一个规则时,它会丢失其成员的所有值,就像它正在实例化但没有完全复制一样。我为类定义了一个=运算符和一个复制构造函数。我还尝试在成员中手动复制,如下所示: expr: //Returns myClass atomicexpr { //Also returns myClass $$ = driver.returnClass($1) $$.member1 = driver.returnClass($1).member1 $$.member2 = driver.returnClass($1).member2 } 注意,我在BISY手册中的C++示例中演示了使用变体而不是联合。

Bison未正确实例化类 我有一个BISO/Flex C++分析器,它有一个类,我写的是它的一些规则的返回类型(在解析器文件中定义,如代码> %型ExpR)。然后(通常)存储类实例,并在以后打印出来。当类实例从一个规则传递到另一个规则时,它会丢失其成员的所有值,就像它正在实例化但没有完全复制一样。我为类定义了一个=运算符和一个复制构造函数。我还尝试在成员中手动复制,如下所示: expr: //Returns myClass atomicexpr { //Also returns myClass $$ = driver.returnClass($1) $$.member1 = driver.returnClass($1).member1 $$.member2 = driver.returnClass($1).member2 } 注意,我在BISY手册中的C++示例中演示了使用变体而不是联合。,c++,bison,flex-lexer,C++,Bison,Flex Lexer,要正确实例化该类,我需要做什么?听起来像是在切片对象。我想你需要传递指针作为返回值。理论上,它们都是相同的类型(不是派生的),所以它们不会被分割。但我把它改为传递指针,结果是一样的。

要正确实例化该类,我需要做什么?

听起来像是在切片对象。我想你需要传递指针作为返回值。理论上,它们都是相同的类型(不是派生的),所以它们不会被分割。但我把它改为传递指针,结果是一样的。