如何将类型变量转换var
为var*
var&
我必须使用一个接受 var 类对象的函数(假设有一个类)。示例代码是这样给出的:-
testFunc(false, namespace1::namespace2::var(), 100);
在函数声明中它说第二个参数是类型namespace1::namespace2::var&
,我可以创建namespace1::namespace2::var
或namespace1::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()。