gpt4 book ai didi

c++ - CORBA::String_var -> 我无法为这种类型的类字段分配任何值

转载 作者:太空狗 更新时间:2023-10-29 21:48:01 30 4
gpt4 key购买 nike

我有一个简单的类:

class MyExample : public POA_Example
{
CORBA::String_var field;

public:
char* getField();
void setField(const char* f);
};

char* MyExample::getField()
{
return CORBA::string_dup(this->field.out());
}

void MyExample::setField(const char* f)
{
this->field = CORBA::string_dup(f);
}

和主应用:

#include "MyExample.h"
#include <iostream>
using std::cout;

int main()
{
MyExample e;
e.setField("Hello");
cout << e.getField() << "\n";
return 0;
}

我使用 omniORB,但我上面给出的代码没有显示任何内容……这里有什么问题?

最佳答案

如果您正在使用 omniORB,您可能必须至少调用 orb_init() 才能使字符串操作正常工作。否则,您拥有的代码似乎还不错。

(尽管您不必在 setField() 函数中调用 string_dup(),因为 String_var 类会自动执行此操作当你给它分配一个 const char* 时。)

(并且您通过在 cout 中调用 e.getField() 来泄漏内存。但这不应该阻止您看到一些东西。)

关于c++ - CORBA::String_var -> 我无法为这种类型的类字段分配任何值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11850002/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com