C++笔记之用户定义的转换
用户定义的转换(User-defined Conversion)
是一种将一个类类型转换为另一种类型的机制
语法
operator conversion-type-id
explicit operator conversion-type-id (C++11)
示例
Integer.h
#pragma once
#include <iostream>
class Integer
{
friend std::ostream &operator<<(std::ostream &os, const Integer &integer);
public:
Integer(int i);
operator int(); //user-defined conversion
private:
int i;
};
Integer.cpp
#include "Integer.h"
std::ostream &operator<<(std::ostream & os, const Integer & integer)
{
os << integer.i;
return os;
}
Integer::Integer(int i) : i(i) { }
Integer::operator int()
{
return i;
}
UserDefinedConversionExample.cpp
#include "Integer.h"
int main()
{
using namespace std;
Integer integer = ;
cout << "integer: " << integer << endl;
int i = integer;
cout << "i: " << i << endl;
system("pause");
return ;
}
参考链接:user-defined conversion - cppreference.com
C++笔记之用户定义的转换的更多相关文章
- ylbtech-LanguageSamples-UserConversions(用户定义的转换)
ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-UserConversions(用户定义的转换) 1.A,示例(Sample) 返回顶部 ...
- CREATE CAST - 定义一个用户定义的转换
SYNOPSIS CREATE CAST (sourcetype AS targettype) WITH FUNCTION funcname (argtype) [ AS ASSIGNMENT | A ...
- CREATE CONVERSION - 定义一个用户定义的码制转换
SYNOPSIS CREATE [DEFAULT] CONVERSION name FOR source_encoding TO dest_encoding FROM funcname DESCRIP ...
- sails route(1) -用户定义路由
sails支持两种类型的路由: custom(or "explicit") andautomatic(or "implicit"). 先来看一下custom 即 ...
- jmeter笔记(7)--参数化--用户定义的变量
录制的脚本里面有很多的相同的数据的时候,比如服务器ip,端口号等,当更换服务器的时候,就需要手动的修改脚本里面对应的服务器ip和端口号,比较繁琐,jmeter里面有一个用户自定义变量能很好的解决这个问 ...
- 接口测试工具-Jmeter使用笔记(七:用户定义的变量)
使用场景:一组API根据业务流程制作成测试脚本,想要移植到其他测试环境时,由于数据库发生了变更,有些初始化数据也相应发生了变化,例如环境地址.请求路径等等.博主甚至把服务器地址和接口的部分共同请求路径 ...
- C++ Primer 学习笔记_63_重载运算符和转换 --转换和类类型【上】
重载运算符和转换 --转换与类类型[上] 引言: 在前面我们提到过:能够用一个实參调用的位 unsignedchar 相同范围的值,即:0到255. 这个类能够捕获下溢和上溢错误,因此使用起来比内置u ...
- C#高级编程四十一天----用户定义的数据类型转换
用户定义的数据类型转换 C#同意定义自己的 数据类型,这意味着须要某些 工具支持在自己的数据类型间进行数据转换.方法是把数据类型转换定义为相关类的一个成员运算符,数据类型转换必须声明为隐式或者显式,以 ...
- C#编程(四十一)----------用户定义的数据类型转换
用户定义的数据类型转换 C#允许定义自己的 数据类型,这意味着需要某些 工具支持在自己的数据类型间进行数据转换.方法是把数据类型转换定义为相关类的一个成员运算符,数据类型转换必须声明为隐式或者显式,以 ...
随机推荐
- Device Tree Usage 【转】
转自:http://blog.chinaunix.net/uid-20522771-id-3457184.html 原文链接:http://devicetree.org/Device_Tree_Usa ...
- UPC 2223: A-Number and B-Number(数位DP+二分)
积累点: 1: (l&r)+((l^r)>>) == (l+r)/2 2: 注意判断现在是否有限制.当枚举下一个量时,是(isQuery && j==end),不要 ...
- Cryptography I 学习笔记 --- 流密码
1. 对于一次性密码本(one time pad),没有唯密文攻击(cypher text only attack),也就是说如果攻击者只能拿到密文,他什么也做不了 2. 完美密码:密钥长度大于密文长 ...
- Jython中文乱码问题
最近,在项目中需要用到Java代用Python的代码,并且需要传参数,因此选用了Jython包,但是,如果在调用python脚本时,出现了中文乱码的现象.代码如下: PythonInterpreter ...
- Revolving Digits
题面 [题目描述]: 有一天,Silence对可以旋转的正整数十分感兴趣.在旋转操作中,他可以把后面的数字按照原位置不动地搬到剩下位置的前面.当然,他也可以完全不动这串数字.比如,他可以把123变为1 ...
- iOS应用崩溃日志揭秘
这篇文章还可以在这里找到 英语 Learn how to make sense of crash logs! 本文作者是 Soheil Moayedi Azarpour, 他是一名独立iOS开发者. ...
- C#使用反射机制获取类信息[转]
http://www.cnblogs.com/zhoufoxcn/archive/2006/10/31/2515873.html 1.用反射动态创建类实例,并调用其公有成员函数. //新建一个类库项目 ...
- Hadoop 2.2.0集群搭建
一.环境说明 1.虚拟机平台:VMware10 2.Linux版本号:ubuntu-12.04.3-desktop-i386 3.JDK:jdk1.7.0_51 4.Hadoop版本号:2.2.0 5 ...
- linux中ERROR: The partition with /var/lib/mysql is too full!解决的方法
今天在ubuntu上遇见这个问题.应该是我的第一分区太小了. 解决的方法: bey0nd@wzw:/var$ cd /var bey0nd@wzw:/var$ rm -rf log 我们删除日志文件 ...
- 控制显示input隐藏和查看密码
通过更改input的password和text类型即可实现 //点击函数,获取dom,判断更改属性. show(){ let input=document.getElementById("i ...