c++转换构造函数
Posted Linux编程学堂
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++转换构造函数相关的知识,希望对你有一定的参考价值。
11 转换构造函数
C++类提供了构造函数的定义,提供给对象初始化的接口函数。我们来看看下面的一个例子:
程序运行结果如下:
g++ test.cpp -o exe
wkf@ubuntu:~/c++$ ./exe
val = 996
在这个程序中,定义了my_int类,该类的构造函数定义如下:
my_int(char* pstr)
val = atoi(pstr);
就是接收一个字符串参数,然后,把这个字符串参数转换成整数,再设置给val成员变量。那么,我们可以认为:把一个字符串数值,转换成int类型的数值。
那么,我们可以把这个构造函数,称为:转换构造函数。就是一个数据类型的参数,转换成当前类需要的数据。
转换构造函数也是一种构造函数,它遵循构造函数的一般规则。通常把有一个参数的构造函数用作类型转换,所以,称为“转换构造函数”。
归纳起来,使用转换构造函数将一个指定的数据类型转换为类对象的方法如下:
(1) 先声明一个类,如上面的my_int类。
(2) 在这个类中定义一个只有一个参数的构造函数,参数的类型是需要转换的类型,在函数体中自己实现转换的过程和逻辑。
(3) 在该类的作用域内可以用以下形式进行类型转换:
类名(指定类型的数据)
这样,就可以将指定类型的数据转换为此类的对象。因为,构造函数,就是定义一个当前类的对象。所以,将参数指定的数据,设置给当前类对象。
以上是关于c++转换构造函数的主要内容,如果未能解决你的问题,请参考以下文章
C++ 错误:'(' 标记之前的预期构造函数、析构函数或类型转换