12.关于构造函数

来源:互联网 发布:3d max for mac 编辑:程序博客网 时间:2024/05/16 07:33

1.默认情况下,单参数构造函数提供隐式类型转换

       在成员函数的单参数是类对象时,如果输入的是其他类型,而该类有相应的构造函数,它就能提供隐式转换。如:

Code:
  1. Sales_item(const std::string &book = “”);  
  2. Sales_item(std::istream &is);  
  3. Bool same_isbn(Sales_item &rhs)const;  
  4.   
  5. Sales_item item;  
  6. String null_book =“9-999-9999-9”;  
  7. Item.same_isbn(null_book);//自动类型转换  

      如果要disable隐式转换,那可以在类声明中,在构造函数前加explicit如:

Code:
  1. Class Sales_item{  
  2. Public:  
  3. explicit Sales_item(const std::string &book = “”);  
  4. explicit  Sales_item(std::istream &is);  
  5. Bool same_isbn(Sales_item &rhs)const;  
  6. };  

 

原创粉丝点击