voID foo(IList<int>^ const & List ) { ... }
这个^ const&意思?我查看了C/C++li规范,但没有找到关于制作常量跟踪引用的评论,也没有发现^&组合.
这合法吗?
解决方法 它是跟踪句柄不变的参考.它允许您通过引用而不是值传递句柄.据推测,作者认为它比复制手柄更有效.
如果作者想要使句柄保持不变,他应该使用其中任何一个
Method(TestClass const ^ const & parameter) Method(TestClass const^ parameter)
或者
方法(TestClass const ^&参数) – 但调用者必须首先构造句柄
同
TestClass const ^ constHandle = nonConstHandle
每个例子:
// test.cpp : defines the entry point for the console application.//#include "stdafx.h"ref class TestClass{public: voID setA(int value) { a = value; } TestClass() : a(10) { }private: int a;};class TakesHandle{public: voID methodX1(TestClass const ^ const & parameter) { // Un-commenting below causes compiler error // parameter->setA(11); } voID methodX2(TestClass const^ parameter) { // Un-commenting below causes compiler error // parameter->setA(11); } voID methodX3(TestClass const^& parameter) { // Un-commenting below causes compiler error // parameter->setA(11); }};int _tmain(int argc,_TCHAR* argv[]){ TakesHandle takes; TestClass ^ test1 = gcnew TestClass(); // compiles takes.methodX1(test1); // compiles takes.methodX2(test1); TestClass const ^ constHandle = test1; takes.methodX3(constHandle); return 0;}总结
以上是内存溢出为你收集整理的c -cli – C/C++LI,对跟踪句柄的“常量”引用全部内容,希望文章能够帮你解决c -cli – C/C++LI,对跟踪句柄的“常量”引用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)