c – 模板类构造函数的专门化
发布时间:2020-12-16 09:53:56 所属栏目:百科 来源:网络整理
导读:我是C语言模板的新手. 谁能解释为什么我的专用构造函数永远不会被执行. 它删除const和引用运算符时工作. #includeiostream#includestringusing namespace std;templatetypename Tclass CData{public: CData(const T); CData(const char*);private: T m_Data;
我是C语言模板的新手.
谁能解释为什么我的专用构造函数永远不会被执行. 它删除const和引用运算符时工作. #include<iostream> #include<string> using namespace std; template<typename T> class CData { public: CData(const T&); CData(const char*&); private: T m_Data; }; template<typename T> CData<T>::CData(const T& Val) { cout << "Template" << endl; m_Data = Val; } template<> CData<char*>::CData(const char* &Str) { cout << "Char*" << endl; m_Data = new char[strlen(Str) + 1]; strcpy(m_Data,Str); } void main() { CData<int> obj1(10); CData<char*> obj2("Hello"); } 输出是 模板 模板 解决方法
因为你不能将“Hello”绑定到const char *&.
评论中添加的信息dyp非常有趣:
这意味着您可以通过替换const char *&来实际使其工作.通过const char * const&,甚至const char *&&在第11节中,不确定这在你的用例中是否真的很聪明. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ruby-on-rails – 如何从过时的TZInfo标识符中获取Rails Ti
- arrays – Ruby:在数组中查找下一个匹配的索引,或者使用of
- c# – 从ZedGraph饼图中删除标签行
- Error parsing XML: unbound prefix on XXX解决办法
- play 传值 Scope flash,params,renderArgs,routeArgs,s
- ruby-on-rails – Rails控制器(活动事件)
- 使用NSHashTable在Swift 3中实现Observer模式
- XML 文件 中 特殊符号 要转义,否则可能出错。
- 常见算法题合辑(一)
- CocosBuilder 完全攻略 (译)