首页 > 后端开发 > C++ > 在 C 中调用构造函数时可以显式指定模板参数吗?

在 C 中调用构造函数时可以显式指定模板参数吗?

Barbara Streisand
发布: 2024-11-15 12:59:02
原创
608 人浏览过

Can You Explicitly Specify Template Parameters When Invoking a Constructor in C  ?

构造函数调用中的显式模板参数规范

在使用 C 的面向对象编程中,构造函数是初始化对象的特殊成员函数。虽然构造函数可以定义为模板,允许通用初始化行为,但通常需要在构造函数调用期间显式指定模板参数。

名为 A 的类就是一个简单的示例:

struct A {
   template<typename T>
   A() {}
};
登录后复制

上面的代码定义了一个接受通用数据类型 T 的模板构造函数。但是,在调用此构造函数时,编译器通常依赖于所提供参数的类型推导。问题出现了:有没有办法显式指定构造函数的模板参数?

不幸的是,答案是否定的。根据 C 03 标准,“无法为这些函数模板提供显式模板参数列表。”这是因为显式模板参数列表跟在函数模板名称后面,并且在不使用函数名称的情况下调用转换成员函数模板和构造函数成员函数模板。

注意:此行为可能有所不同在较新版本的 C 中。请参阅您用于验证的特定 C 版本的标准或文档。

以上是在 C 中调用构造函数时可以显式指定模板参数吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板