关于stl中调用到类的拷贝构造函数,该怎么处理
关于stl中调用到类的拷贝构造函数
问题如下:
先看一段源码
#include <map>
class t1
{
public:
t1(){};
~t1(){}
t1(t1 &t)
{
x = t.x;
}
private:
int x;
int y;
};
class t2
{
public:
t2(){}
~t2(){}
t2(t2 &t)
{
m_t = t.m_t;
}
private:
std::map<int, t1> m_t;
};
提示t1没有默认的构造函数,这个要怎样改才能通过呢.
知道的高手,帮忙解决一下,谢谢
------解决方案--------------------
拷贝构造函数定义要加const
t1(const t1 & t)
------解决方案--------------------
把t1的拷贝构造改成 t1(const t1& t)试下
------解决方案--------------------
拷贝构造要const的...
------解决方案--------------------
问题如下:
先看一段源码
#include <map>
class t1
{
public:
t1(){};
~t1(){}
t1(t1 &t)
{
x = t.x;
}
private:
int x;
int y;
};
class t2
{
public:
t2(){}
~t2(){}
t2(t2 &t)
{
m_t = t.m_t;
}
private:
std::map<int, t1> m_t;
};
提示t1没有默认的构造函数,这个要怎样改才能通过呢.
知道的高手,帮忙解决一下,谢谢
------解决方案--------------------
拷贝构造函数定义要加const
t1(const t1 & t)
------解决方案--------------------
把t1的拷贝构造改成 t1(const t1& t)试下
------解决方案--------------------
拷贝构造要const的...
------解决方案--------------------
- C/C++ code
试试: int main() { const t _t; t t1 = _t; };