首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++数据转换成对象的有关问题

2012-03-26 
C++数据转换成对象的问题c++一个类中的单参数构造函数具有将指定类型数据转换为该类对象的功能,请问谁知道

C++数据转换成对象的问题
c++一个类中的单参数构造函数具有将指定类型数据转换为该类对象的功能,请问谁知道具体是如何转换的,转换后的对象又在什么时候被销毁呢?销毁的时候又是调用哪一个析构函数?
不知道我问题问的清不清楚!

[解决办法]
例如:
class my_string
{
my_string(char *);//初始化
};
使用:
my_string a_sample( "aaa ");就看似是转换了,其实还是构造了一个对象
[解决办法]
比如下面定义了一个类A,该类有一个需要
class A
{ public:
A(const string &)
{}
};
如果现在某个函数需要一个参数,该参数的类型为A,但是传递的却是一个const string类型的参数时,就会根据这个const string来构造一个临时的A类对象,并将该对象传递给函数使用。函数执行完毕后,该临时对象就调用自身的析构函数。这是隐式的转换。显式的就不用说了。一般单形参构造函数应该为explicit来防止隐式转换。

[解决办法]
c++一个类中的单参数构造函数具有将指定类型数据转换为该类对象的功能,请问谁知道具体是如何转换的,
-----------------
就是调用你的构造函数转换生成一个临时的对象,

转换后的对象又在什么时候被销毁呢?
------------------
临时对象的作用完成时

销毁的时候又是调用哪一个析构函数?
-----------------
类的析构函数

热点排行