0

我在 IBM Rhapsody 8.1.5 中创建了一个 C++ 项目,并使用内置的自动编码器功能生成代码。

我使用组合关联在整个模型中创建类的实例,并希望使用 GetGenerate 功能以引用的形式自动为这些生成访问器。

为了实现这一点,我全局选择了 CG::Relation::GetGenerate 并将 CPP_CG::Relation::ScalarContainment 设置为 Reference。

这导致如下代码...

MyClass1 itsMyClass1;

MyClass1& MyClass2::getItsMyClass1() const {
    return (MyClass1&) &itsMyClass1;
}

在编译时,这会产生以下错误:将“const MyClass1*”类型的右值表达式无效转换为“MyClass1&”类型

这个生成的访问器函数应该没有额外的“&”,如下所示:

MyClass1& MyClass2::getItsMyClass1() const {
    return (MyClass1&) itsMyClass1;
}

我在 Rhapsody 属性中找不到任何影响这一点的设置,有谁知道是否有办法实现这一点?

谢谢

4

1 回答 1

1

我找到了一个适合需要的属性:

寻找OMContainers::EmbeddedScalar::Get并删除前导&那里

于 2017-05-23T07:23:46.037 回答