C++的转换函数
听侯捷老师的讲课笔记:
所谓转换函数指的是类型之间的转换,比如把自定义的类类型转换成内建类型(比如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++的转换函数的更多相关文章
- ORACLE常用数值函数、转换函数、字符串函数
本文更多将会介绍三思在日常中经常会用到的,或者虽然很少用到,但是感觉挺有意思的一些函数.分二类介绍,分别是: 著名函数篇 -经常用到的函数 非著名函数篇-即虽然很少用到,但某些情况下却很实用 注:N表 ...
- MySQL 日期、时间转换函数
MySQL 日期.时间转换函数:date_format(date,format), time_format(time,format) 能够把一个日期/时间转换成各种各样的字符串格式.它是 str_to ...
- 十进制(decimal system)转换函数说明
一,十进制(decimal system)转换函数说明 1,十进制转二进制 decbin() 函数,如下实例 echo decbin(12); //输出 1100 echo decbin(26); / ...
- Sql server函数的学习1(系统变量、错误函数、转换函数)
一.系统变量的介绍和使用 1.@@ERROR 变量 2.@@SERVICENAME 变量 3.@@TOTAL_ERRORS 变量 4.@@TOTAL_READ 变量 5.@@VERSION 变量 二. ...
- Oracle内置函数:时间函数,转换函数,字符串函数,数值函数,替换函数
dual单行单列的隐藏表,看不见 但是可以用,经常用来调内置函数.不用新建表 时间函数 sysdate 系统当前时间 add_months 作用:对日期的月份进行加减 写法:add_months(日期 ...
- Linux 网络编程详解一(IP套接字结构体、网络字节序,地址转换函数)
IPv4套接字地址结构 struct sockaddr_in { uint8_t sinlen;(4个字节) sa_family_t sin_family;(4个字节) in_port_t sin_p ...
- 【jquery】字符ascii码转换函数
js 字符ascii码转换函数 字符转ascii码:用charCodeAt();ascii码砖字符:用fromCharCode(); 看一个小例子 <script> str="A ...
- SQL简繁转换函数
declare @jall nvarchar(4000),@fall nvarchar(4000) select @jall=N'啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊 ...
- 完善SQL农历转换函数
-------------------------------------------------------------------- -- Author : 原著: 改编:ht ...
- php进制转换函数
1 十进制(decimal system)转换函数 ① 十进制转二进制 string decbin(int number). 参数为一个十进制整型数字,不是整型数字会自动转为整型数字,如'3'转为3 ...
随机推荐
- Kubectl工具常用命令
创建namesapce kubectl create namespace {name} 注意:name只能为小写字母.数字和-的组合,且开头结尾为字母,一般格式为my-name 123-abc等. 创 ...
- Ubuntu 16.04安装各种软件
Ubuntu 16.04发布了,带来了很多新特性,同样也依然带着很多不习惯的东西,所以装完系统后还要进行一系列的优化. 1.删除libreoffice libreoffice虽然是开源的,但是Java ...
- Java里的CompareAndSet(CAS)
; if (compareAndSet(current, next)) return next; } } 首先可以看到他是通过一 ...
- k8s 安装文档
k8s 安装文档 1.5 http://blog.csdn.net/bobpen/article/details/78958675
- ABAP重点各种接口技术
转自 http://www.cnblogs.com/penley/archive/2008/11/12/1332140.html 下面总结一下ABAP中的各种接口技术,因为学习时间不是很长,肯定还不全 ...
- mysql数据库补充知识1 安装数据库破解数据库密码已经创建用户
一.安装MYSQL数据库 1.yum安装 #二进制rpm包安装 yum -y install mysql-server mysql 2.源码安装 1.解压tar包 cd /software tar ...
- 剑指offer 面试30题
面试30题: 题目:包含min函数的栈 题:定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数.在该栈中,调用min.push.pop的时间复杂度都是O(1) 解题思路:1)如果每次 ...
- Android Http Get Post
public class MyHttpUrlCon { public static String settionId = ""; ;// public ReturnData doG ...
- JavaScript:基础扩展(1)——JSON
JavaScript:扩展知识(1)——JSON 理解: 关于 JSON,最重要的是要理解它是一种数据格式,不是一种编程语言.虽然具有相同的语法形式,但 JSON 并不从属于 JavaScript.而 ...
- 每天一个Linux命令(45)lsof命令
lsof命令用于查看你进程打开的文件,端口(TCP.UDP),找回/恢复删除的文件,打开文件的进程. (1)用法: 用法: lsof [参数] [文件] (2)功 ...