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++转换构造函数:将其它类型转换为当前类的类型

C++拷贝构造函数移动拷贝函数

C++ 错误:'(' 标记之前的预期构造函数、析构函数或类型转换

c++ 错误:预期构造函数、析构函数或在“(”标记之前的类型转换

❥关于C++之类的转换函数

c ++:强制转换运算符与分配运算符与转换构造函数优先级