• 隐式类类型转换 [C++ Primer]


    可以用单个形参来调用的构造函数定义了从形参类型到该类类型的一个隐士转换。

    1 class  Sale_item{
    2 
    3  Sale_item(std::istream &s);
    4 
    5 };
    6 
    7 string null_isbn = "123456789";
    8 item.same_isbn(null);

    这段程序将string类型的参数传递给一个期待Sale_item类型参数的函数;

    编译器会自动使用接受一个string对象的构造函数从null_isbn生成一个新的Sale_item对象,新生成的临时的Sale_item对象被传递给该函数。

    1.可以再接受一个参数的构造函数前面加explicit来避免这种隐士的转换;

    2.可以通过显示地使用构造函数来生成转换。

    string null_isbn = "123456789";
    item.same_isbn(Sale_item(null_isbn ));


    除非有明显的额理由需要使用隐士转换,否则单形参构造函数应该总是声明为explicit(只出现在声明部分);
  • 相关阅读:
    写一写这几天安卓开发遇到的坑
    安卓环境搭建
    正则表达式
    一段时间的总结
    路飞-登录页面
    路飞-腾讯云短信接口
    路飞-Redis
    路飞-git操作
    路飞-后台xadmin配置
    路飞-后台处理跨域问题
  • 原文地址:https://www.cnblogs.com/cy568searchx/p/3014835.html
Copyright © 2020-2023  润新知