读书人

如何才能让两个类型之间可以通过构造函

发布时间: 2013-08-04 18:26:16 作者: rapoo

怎么才能让两个类型之间可以通过构造函数进行相互转换?
本帖最后由 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;
}

读书人网 >C++

热点推荐