64,654
社区成员
发帖
与我相关
我的任务
分享
#include "stdafx.h"
#include "windows.h"
#pragma warning(disable: 4786)
#include <string>
#include <map>
class Ctest
{
public:
Ctest(){OutputDebugString("\n 构造");};
virtual ~Ctest(){OutputDebugString("\n 析构");};
int m_nTest;
};
int main(int argc, char* argv[])
{
std::map<int,Ctest> m_TestMap;
m_TestMap[0];
getchar();
getchar();
return 0;
}
构造
析构
析构
构造
#include "stdafx.h"
#include "windows.h"
#pragma warning(disable: 4786)
#include <string>
#include <map>
class Ctest
{
public:
Ctest(){
OutputDebugString(L"\n 构造");
}
Ctest(const Ctest& t){
OutputDebugString(L"\n 拷贝构造");
}
virtual ~Ctest(){
OutputDebugString(L"\n 析构");
}
int m_nTest;
};
void test(){
std::map<int,Ctest> m_TestMap;
m_TestMap[0];
}
int main(int argc, char* argv[])
{
test();
getchar();
return 0;
}
输出是:
构造
拷贝构造
拷贝构造
析构
析构
构造
复制构造
复制构造
析构
析构
所有结果
#include "stdafx.h"
#include "windows.h"
#pragma warning(disable: 4786)
#include <string>
#include <map>
class Ctest
{
public:
Ctest(){OutputDebugString("\n 构造");};
Ctest(const Ctest& anther){OutputDebugString("\n 复制构造");m_nTest = anther.m_nTest;};
virtual ~Ctest(){OutputDebugString("\n 析构");};
int m_nTest;
};
int main(int argc, char* argv[])
{
std::map<int,Ctest> m_TestMap;
m_TestMap[0];
getchar();
getchar();
return 0;
}
输出结果
构造
复制构造
复制构造
析构
析构