下面是用作地图中值的类:
class Book { int m_nId; public: // Book() { } <----- Why is this required? Book( int id ): m_nId( id ) { } };
在main()内:
map< int,Book > mapBooks; for( int i = 0; i < 10; ++i ) { Book b( i ); mapBooks[ i ] = b; }
导致错误的声明是:
mapBooks[ i ] = b;
如果我添加默认构造函数,则不会出现错误.但是,我不明白为什么需要.谁有人解释一下?如果我使用insert(),则不会出现问题.
顺便说一下,我正在使用Visual C 2008进行编译.