欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

C/Cpp / 构造函数种类

发布时间:2024/10/14 编程问答 17 豆豆
生活随笔 收集整理的这篇文章主要介绍了 C/Cpp / 构造函数种类 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
2018-03-15  创建人:Ruo_Xiao 开发环境:VS2010 邮箱:xclsoftware@163.com2018-04-16  修改人:Ruo_Xiao 添加对类型转换构造函数隐式转换的抑制使用的说明,即:explicit。2019-06-19  修改人:Ruo_Xiao 修正对转换构造函数的说明。

一、默认构造函数(无参数构造函数)

Father() {std::cout<<"我是默认构造函数!"<<std::endl;std::cout<<std::endl; }

2、一般构造函数(重载构造函数)

  • 这种构造函数类中可以有多个,但是形参类型或者个数不能相同,需要满足C++重载原理。
  • 栗子:
Father(int i,double d) {cout<<"我是一般构造函数!"<<endl;cout<<endl; }

3、复制构造函数,即:拷贝构造函数

  • 拷贝构造函数参数为类对象本身的引用,用于根据一个已存在的对象复制出一个新的该类的对象。
  • 若没有显示的写拷贝构造函数,则系统会在适当的时候创建一个默认的拷贝构造函数
  • 栗子:
Father(const Father &F) {cout<<"我是复制构造函数!"<<endl;cout<<endl; }

4、转换构造函数

  • 条件:构造函数只有一个参数,而且该参数不是本类的const引用。
  • 作用:相当于C语言隐式类型转换,相当于 类Test t = 100; // 就是t = Test(100);
  • 栗子:
Father(int i) {cout<<"我是转换构造函数!"<<endl;cout<<endl; }

 

  • 上述属于隐式转换,若不编写者不想让调用者执行该操作,即:必须显示调用。则在构造函数声明前面加上“explicit”即可。

5、等号运算符重载构造函数(赋值构造函数)

  • 作用:两个对象的数据成员进行赋值。
  • 条件:等号两边的对象必须已经创建。
  • 栗子:
Father &operator=( const Father &rhs ) {cout<<"我是等号运算符重载构造函数!"<<endl;return *this; }

 

(SAW:Game Over!)
 

与50位技术专家面对面20年技术见证,附赠技术全景图

总结

以上是生活随笔为你收集整理的C/Cpp / 构造函数种类的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。