使用[]时,为什么C ++ map类型参数需要空构造函数?另请参见 C ++标准列表和默认构造类型不是一个主要问题,只是烦人,因为我不希望我的类在没有特定参数的情况下被实例化。#include <map>struct MyClass{
MyClass(int t);};int main() {
std::map<int, MyClass> myMap;
myMap[14] = MyClass(42);}这给了我以下g ++错误:/usr/include/c++/4.3/bits/stl_map.h:419:错误:没有用于调用'MyClass()'的匹配函数如果我添加一个默认构造函数,这编译很好; 我确信它不是由不正确的语法引起的。
3 回答
- 3 回答
- 0 关注
- 645 浏览
添加回答
举报
0/150
提交
取消