一、重载运算符法

#include <stdio.h>
#include <iostream> class Three
{
int i;
public:
Three(int ii = , int = ) : i(ii)
{
std::cout << "you call Three()" << std::endl;
}
}; class Four
{
int x;
public:
Four(int xx) : x(xx) {}
operator Three() const { return Three(x);}
}; void g(Three) {}
int main()
{
Four four();
g(four);
g();//calls Three(1,0)
int n;
std::cin >> n;
}
//输出两次:
you call Three()

2.构造函数转换

//这个构造函数能够把另一类型的对象(引用)作为它的单个参数,那么构造函数允许编译器执行自动类型转换;
#include <stdio.h>
#include <iostream> class One
{
public:
One() {}
}; class Two
{
public:
Two(const One&)
{
std::cout << "you call Two()" << std::endl;
}
}; void f(Two) {} int main()
{
One one;
f(one);//wants a Two ,has a one
//输出:"you call Two()”
    int i;
std::cin >> i;
}
注意:以上方法调用了Two的隐藏的构造函数,如果关心调用效率的话不要这样使用!

3.阻止构造函数被隐式调用,要求必须显示调用:

//使用关键词explicit时,必须显示调用,完成类型转换
#include <stdio.h>
#include <iostream> using namespace std; class One
{
public:
One() { }
}; class Two
{
public:
explicit Two(const One&) {}
}; void f(Two) {} int main()
{
One one;
//!f(one);//NO auto conversion allowed
f(Two(one)); //int i;
//cin >> i;
}

C++自动类型转化--特殊构造函数方法和重载的运算符方法的更多相关文章

  1. 040_字符串连接符 041_条件运算符目 042_运算符优先级_逻辑与或优先问题 043_自动类型转化 044_强制类型转换 045_基本类型常见错误_溢出_L问题

    040_字符串连接符 package test_package; /** * 字符串运算符 * @author * */public class TestOperator05 { public sta ...

  2. Java中byte、short、char、int、long运算时自动类型转化问题

    -------------------------------------------------------------------------------------------------- ★ ...

  3. 重载 CreateParams 方法[2]: 重载 TForm.CreateParams 方法的几个例子

    这里有所有相关参数的解释: http://www.cnblogs.com/del/archive/2008/04/15/1154359.html //最大化窗口 procedure TForm1.Cr ...

  4. C++中的显式类型转化

    类型转化也许大家并不陌生,int i; float j; j = (float)i; i = (int)j; 像这样的显式转化其实很常见,强制类型转换可能会丢失部分数据,所以如果不加(int)做强制转 ...

  5. Spring mvc @initBinder 类型转化器的使用

    一.单日期格式 因为是用注解完完成的后台访问,所以必须在大配置中配置包扫描器: 1.applicactionContext.xml <?xml version="1.0" e ...

  6. .NET 基础 一步步 一幕幕[面向对象之方法、方法的重载、方法的重写、方法的递归]

    方法.方法的重载.方法的重写.方法的递归 方法: 将一堆代码进行重用的一种机制. 语法: [访问修饰符] 返回类型 <方法名>(参数列表){ 方法主体: } 返回值类型:如果不需要写返回值 ...

  7. java方法的重载

    java方法的重载 public class Person1 {    private String name; //姓名    private int age;      //年龄    priva ...

  8. Java方法多态性——方法的重载Overload和重写Override

    方法的重写(Overriding)和重载(Overloading)是java多态性的不同表现,重写是父类与子类之间多态性的一种表现,重载可以理解成多态的具体表现形式. 重写(Override) 重写是 ...

  9. C#类的继承,方法的重载和覆写

    在网易云课堂上看到唐大仕老师讲解的关于类的继承.方法的重载和覆写的一段代码,注释比较详细,在此记下以加深理解. 小总结: 1.类的继承:允许的实例化方式:Student t=new Student() ...

随机推荐

  1. Just Oj 2017C语言程序设计竞赛高级组A: 求近似值(矩阵快速幂)

    A: 求近似值 时间限制: 1 s      内存限制: 128 MB 提交 我的状态 题目描述 求⌊(5–√+6–√)2n⌋⌊(5+6)2n⌋%9932017. 例如:n=1,(5–√+6–√)2( ...

  2. azkaban group分组,权限

    翻译自:https://azkaban.readthedocs.io/en/latest/userManager.html?highlight=group 1.job project,名为" ...

  3. EntityFramework Reverse POCO Code First 反向生成器

    https://marketplace.visualstudio.com/items?itemName=SimonHughes.EntityFrameworkReversePOCOGenerator ...

  4. JavaBean toString() - 将bean对象打印成字符串

    JavaBean toString方式 https://www.cnblogs.com/thiaoqueen/p/7086195.html //方法一:自动生成 @Override public St ...

  5. Windows 7 64bit VS2015 配置CUDA

    1. 更新驱动 下载系统显卡驱动,首先在设备管理器中查看自己的显卡型号,我的是GeForce GTX 960,然后在官网下载对应的驱动程序并安装. 官网网址:NVIDIA 驱动程序下载   2. 安装 ...

  6. scrapy笔记

    1.关于请求url状态码重定向问题: from scrapy import Request handle_httpstatus_list = [404, 403, 500, 503, 521, 522 ...

  7. redis中实现redis-cli任意目录执行

  8. windows 设置开机启动,启动项

    第一步ctrl+R输入以下任意一个 方法一: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp 方法二: shell:start ...

  9. Eclipse 无输出,但不报错

    解决方法: 若界面中都没有console选项,则 工具栏 Window - Show View - Console Window - Preferences - Run/Debug - Console ...

  10. RF:RF实现根据乳腺肿瘤特征向量高精度(better)预测肿瘤的是恶性还是良性—Jason niu

    %RF:RF实现根据乳腺肿瘤特征向量高精度(better)预测肿瘤的是恶性还是良性 load data.mat a = randperm(569); Train = data(a(1:500),:); ...