怎么才能让两个类型之间可以通过构造函数进行相互转换?
本帖最后由 shendaowu 于 2013-07-27 20:23:24 编辑
#include <iostream>如果不能通过这种方法实现相互转换的话,要怎么弄?后面的等于不是重点,重点是怎么相互转换,我是在测试那个等于的时候发现不能相互转换的。
using namespace std;
class T;
class U
{
public:
U( int i ) { m_n = i; }
U( T t ) { m_n = t.m_n; };
int m_n;
};
class T
{
public:
T( U u ) { m_n = u.m_n; }
T( int i ) { m_n = i; }
bool operator==( T t ) { return m_n == t.m_n; }
int m_n;
};
int main()
{
T t( 2 );
U u( 3 );
if( t == u )
cout << "equ." << endl;
else
cout << "not euq." << endl;
return 0;
}
[解决办法]
C++基础一点也不扎实,一天到晚在论坛里发没内涵的提问帖,楼主是不是有点太急躁了.
#include <iostream>
using namespace std;
class T;
class U
{
public:
U( int i ) { m_n = i; }
U( const T &t );
int m_n;
};
class T
{
public:
T( const U &u ) { m_n = u.m_n; }
T( int i ) { m_n = i; }
bool operator==( const T &t ) { return m_n == t.m_n; }
int m_n;
};
U::U(const T &t) { m_n = t.m_n; };
int main()
{
T t( 2 );
U u( 3 );
if( t == u )
cout << "equ." << endl;
else
cout << "not euq." << endl;
return 0;
}