听侯捷老师的讲课笔记:

所谓转换函数指的是类型之间的转换,比如把自定义的类类型转换成内建类型(比如double),后者向相反的方向转。

直接上代码:

头文件conversion_function.h:

#pragma once
#include<iostream>
using namespace std;
class Fraction
{
public:
Fraction(int num,int den=):m_numerator(num),m_denominator(den)
{
cout << "构造函数 被调用了哦!!!" << endl;
}
~Fraction(){ cout << "析构 函数被调用了哦!!!" << endl; }
operator double()const {
return (double)(m_numerator / m_denominator);
}
private:
double m_numerator;
double m_denominator;
};

源文件conversion_function.cpp:

#include"conversion_function.h"
int main()
{
Fraction f(, );
cout << f.operator double() << endl;
double d = + f;
cout <<"d: "<< d << endl;
system("pause");
return ;
}

转换函数进阶:

头文件conversion_function.h:

#pragma once
#include<iostream>
using namespace std;
class Fraction
{
public:
/*加上关键字explicit就代表告诉编译器说:你不要把double d2=f+4;这里面的4转换成Fraction哦!
我写的构造函数就只是为了构造对象,不用来充当转换函数的作用。注:关键字explicit%90多的几率
是加在构造函数的前面*/
explicit Fraction(int num, int den = ) :m_numerator(num), m_denominator(den)
{
cout << "构造函数 被调用了哦!!!" << endl;
} operator double() const {
return double(this->m_numerator / this->m_denominator);
} double operator +(const Fraction& f){
cout << "+号重载函数 被调用了哦!!!" << endl;
return (this->m_numerator/this->m_denominator+f.m_numerator/f.m_denominator);
}
~Fraction() { cout << "析构 函数被调用了哦!!!" << endl; }
private:
double m_numerator;
double m_denominator;
};

源文件conversion_function.cpp:

#include"conversion_function.h"
int main()
{
Fraction f(,);
double d2=f+;
cout << "d2: " << d2 << endl;
system("pause");
return ;
}

C++的转换函数的更多相关文章

  1. ORACLE常用数值函数、转换函数、字符串函数

    本文更多将会介绍三思在日常中经常会用到的,或者虽然很少用到,但是感觉挺有意思的一些函数.分二类介绍,分别是: 著名函数篇 -经常用到的函数 非著名函数篇-即虽然很少用到,但某些情况下却很实用 注:N表 ...

  2. MySQL 日期、时间转换函数

    MySQL 日期.时间转换函数:date_format(date,format), time_format(time,format) 能够把一个日期/时间转换成各种各样的字符串格式.它是 str_to ...

  3. 十进制(decimal system)转换函数说明

    一,十进制(decimal system)转换函数说明 1,十进制转二进制 decbin() 函数,如下实例 echo decbin(12); //输出 1100 echo decbin(26); / ...

  4. Sql server函数的学习1(系统变量、错误函数、转换函数)

    一.系统变量的介绍和使用 1.@@ERROR 变量 2.@@SERVICENAME 变量 3.@@TOTAL_ERRORS 变量 4.@@TOTAL_READ 变量 5.@@VERSION 变量 二. ...

  5. Oracle内置函数:时间函数,转换函数,字符串函数,数值函数,替换函数

    dual单行单列的隐藏表,看不见 但是可以用,经常用来调内置函数.不用新建表 时间函数 sysdate 系统当前时间 add_months 作用:对日期的月份进行加减 写法:add_months(日期 ...

  6. Linux 网络编程详解一(IP套接字结构体、网络字节序,地址转换函数)

    IPv4套接字地址结构 struct sockaddr_in { uint8_t sinlen;(4个字节) sa_family_t sin_family;(4个字节) in_port_t sin_p ...

  7. 【jquery】字符ascii码转换函数

    js 字符ascii码转换函数 字符转ascii码:用charCodeAt();ascii码砖字符:用fromCharCode(); 看一个小例子 <script> str="A ...

  8. SQL简繁转换函数

    declare @jall nvarchar(4000),@fall nvarchar(4000) select @jall=N'啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊 ...

  9. 完善SQL农历转换函数

    -------------------------------------------------------------------- --  Author : 原著:          改编:ht ...

  10. php进制转换函数

    1 十进制(decimal system)转换函数 ① 十进制转二进制 string  decbin(int number). 参数为一个十进制整型数字,不是整型数字会自动转为整型数字,如'3'转为3 ...

随机推荐

  1. :eq()中的参数详解——需要注意

    :eq()的括号中的参数如果是非负数则在DOM对象中按从上到下的顺序查找指定的元素,但是,如果是是负数,则在DOM中从下向上查找指定元素. 如下实例: 如果 $("#divTag div:e ...

  2. 巨蟒django之CRM4 一些小功能

    内容回顾: 修改的地方 (1) (2) (3) (4) (5) 整体回顾前几天内容: 现在可以登录的原因,session内部存储了信息 这个时候我们再访问刚才的地址,会发现,跳转到了登录页面login ...

  3. php7/etc/php-fpm.d 配置

    php7/etc/php-fpm.d/www.conf nginx php-fpm 高并发优化 - 日记本的回忆 - 博客园 https://www.cnblogs.com/cocoliu/p/856 ...

  4. Python 中星号作用:解包&打散

    python中’*’和’**’的使用分两个方面,一个是计算,另一个是参数传递过程中元素的打包和解包.  计算方面 ‘*’和’**’在python中最常见的作用分别是‘相乘’和‘乘幂’,如下: > ...

  5. 从1到N中1的个数

    示例1,2...9,10,11中有四个1 int getNumber(int n) { int count = 0; int factor = 1; int low = 0; int cur = 0; ...

  6. boost之日期date_time

    date_time库使用的日期基于格里高利历,支持从1400-01-01到9999-12-31的日期. 空的构造函数会创建一个值为not_a_date_time的无效日期:顺序传入年月日值则创建一个对 ...

  7. PyQt4 调用串口API pySerial API说明

    pySerial API官方介绍链接 http://pyserial.readthedocs.io/en/latest/pyserial_api.html

  8. 前端基础之JavaScript_(4)_js的作用域

    js作用域 作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期.在JavaScript中,变量的作用域有全局作用域和局部作用域两种. js的作用域 1. 全局作用域(Glob ...

  9. openstack ha 部署

    一.控制节点架构如下图: 二.初始化环境: 1.配置IP地址: 1.节点1:ip addr add dev eth0 192.168.142.110/24 echo 'ip addr add dev ...

  10. LDAP注入

    理解LDAP与LDAP注入 0x01 LDAP简介 查阅了一些网上的资料,读了好久还是觉得理解起来很困难,感觉还是不够干,之后看到的一个博客http://www.chinaunix.net/old_j ...