0

如何将类型变量转换varvar*var&

我必须使用一个接受 var 类对象的函数(假设有一个类)。示例代码是这样给出的:-

testFunc(false, namespace1::namespace2::var(), 100);

在函数声明中它说第二个参数是类型namespace1::namespace2::var&,我可以创建namespace1::namespace2::varnamespace1::namespace2::var*,但我如何创建namespace1::namespace2::var&

我知道这是太基本的问题,但我无法弄清楚。

编辑:
我试过使用 just var,但它给出了一些奇怪的错误。我很确定这是我正在使用的功能中的某种错误。以下是错误:-

Error   3   error C2825: 'CType': must be a class or namespace when followed by '::'
Error   4   error C2039: 'TypeCode' : is not a member of '`global namespace''
Error   5   error C2146: syntax error : missing ',' before identifier 'TypeCode'
Error   6   error C2065: 'TypeCode' : undeclared identifier 
Error   7   error C3203: 'CustomType' : unspecialized class template can't be used as a template argument for template parameter 'Base', expected a real type   

编辑 2

我认为如果我包含真实的代码很难回答,因为它很复杂。但是看看它是否有帮助。真正的函数的签名是这样的:-

virtual bool opRaiseEvent(bool reliable, const Common::Hashtable& parameters, nByte eventCode, nByte channelID=0, int* targetPlayers=NULL, short numTargetPlayers=NULL);

并且示例代码使用了这样的函数:-

mLoadBalancingClient.opRaiseEvent(false, ExitGames::Common::Hashtable(), 100);

这工作正常。但是现在我想向 HashTable 添加数据,所以我需要创建它的一个对象,然后将它传递给函数。它不接受指针或普通变量。我不知道为什么它只使用 HashTable()。

4

3 回答 3

3

这意味着第二个参数是通过引用传递的。你必须简单地通过:

namespace1::namespace2::var
于 2012-12-08T11:51:26.967 回答
1

这应该工作:

const Common::Hashtable param = namespace1::namespace2::var();
opRaiseEvent(false, param, 100);
于 2012-12-08T12:20:49.137 回答
1
namespace1::namespace2::var v;
testFunc(false, v, 100);
于 2012-12-08T12:22:32.183 回答