在构造函数 foo() 中有一个模板是什么意思 <T>C++?
What does it mean to have a template in constructor foo<T>() in C++?
在下面的代码中,在构造函数之后有<T>
是什么意思?
template<class T>
class foo{
int x;
public:
foo<T>(){ // ??
x=0;
}
};
int main(){
foo<int>* fo = new foo<int>();
}
代码编译成功,没有错误。
我在 c++ 中对方法和函数声明语法进行了一些搜索,但找不到它的含义。
那么,拥有这样的构造函数意味着什么,以及应该如何使用它?
可以使用
以下内容(C++11, 12.1)声明构造函数:
- 注入的类名(仅
foo
) - 命名类模板的当前专用化的类名 (
foo<T>
)
此外,C++11 14.6.1/3 说"类模板或类模板专用化的注入类名可以用作模板名或类型名,无论它在范围内何处。
所以任何一种形式都可以。
相关文章:
- 请解释这句话(cout<<1+int((a<b)^((b-a)&1) )<<endl
- 呼叫运营商<<临时
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- 如何防止clang格式在流运算符调用之间添加换行符<<
- <<操作员在下面的行中工作
- 标准 N3337 5.2.10 第 7 条中的C++"类型"是什么意思?
- "类模板示例<int>;"语句对 C++11 是什么意思?
- 线应该是什么意思
- 错误:无效的预处理指令 #i 的意思是 #if?
- "CID"在AT+HTTPPARA= "CID" ,1中是什么意思
- 表达式"b=(b-x)&x"是什么意思?
- 这个表达是什么意思?
- 此代码验证公式是什么意思?
- 跟踪日志中的T.11803()是什么意思?
- Trie*& 和 Trie** 的意思是 Same?
- 这个额外的关键字在这个 c++ 类声明中是什么意思?
- 错误:无法解析对重载函数的引用;你的意思是调用它吗?
- * 和 ** 在 C++ 函数声明中是什么意思?
- _T("xyz")是什么意思?
- #define Dbg(fmt,..) (0) 是什么意思? 警告:表达式无效