zoukankan      html  css  js  c++  java
  • 漫长的旅途--C++primer学习-命名空间以及类的自动转换和强制转换

    C++用名称空间来控制名称的作用域:

    1不同命名空间的同名变量可以同时存在,不会发生冲突

    2命名空间不能出现在代码块中

    3我们用作用域运算符::,使用空间名来限定名称,最常用的std::cout

    4using 声明和using编译指令:

    using 使特定的标识符可用例如using std::cout

    using 编译指令时整个命名空间可用,例如using namespace std

    类的自动转换和强制转换:

    我们用书中举的例子:

    class Stonewt

    {

    private:

      ...

    public:

      Stonewt(double lbs)

      Stonewt(int stn,double lbs)

      ...

    }

    正是因为有了Stonewt(double lbs)我们就可以进行如下的自动(隐式)转换

    Stone a;a=19.6;

    使用关键子explicit,就不能进行隐式转换(explicit Stonewt(double lbs))只能进行如下的强制转换

    Stonewt a=Stonewt(19.6)

    Stonewt a=(Stonewt)19.6

    如果上面的19.6变成int类型的话,在创建的时候会寻找Stone(int)这样的构造函数,如果没有就其他类型的例如Stonewt(double)函数,当然int类型被转换成了double型。

  • 相关阅读:
    manacher(求最大回文串并返回)
    编程求一个后缀表达式的值
    栈的简单使用
    云计算的概念
    乐优商城
    四大函数型接口
    Stream流计算
    JWT实现无状态登录
    Thymeleaf模板引擎
    elasticSearch的使用
  • 原文地址:https://www.cnblogs.com/daibigmonster/p/7517423.html
Copyright © 2011-2022 走看看