URL*_*L87 1 c++ destructor reference map
我跑到下面的程序,请注意,value这map是一个参考(ClassA&)-
#include <iostream>
#include <map>
using namespace std ;
class ClassA {
public :
ClassA () { cout<<"Hay ! "<<endl ; }
~ClassA () { cout<<"Bye ! "<<endl ; }
} ;
int main () {
map< string,ClassA& > myMap ;
ClassA a ;
myMap.insert( pair<string,ClassA&>("A",a) ) ;
myMap.clear() ;
}
Run Code Online (Sandbox Code Playgroud)
得到输出 -
Hay !
Bye !
Run Code Online (Sandbox Code Playgroud)
好像myMap.clear()没有受到影响因为没有人再打电话给 ClassA析构函数,你能解释一下为什么吗?
| 归档时间: |
|
| 查看次数: |
599 次 |
| 最近记录: |