本文主要是介绍c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(九、十)构造与析构 对象初始化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
九:
init()函数:对象的变量初始赋值
constructor 构造函数:对象被创建时自动被调用
Tree t(12),圆括号表示调用构造函数,12被传给i
destructor 析构函数:对象要被结束掉的时候被自动调用,不能有参数
大括号:对象的域,在大括号之外对象不存在
大括号结束时destructor被调用
大括号指的是main函数的scope
来源:
https://study.163.com/note/noteIndex.htm?id=271005&type=0#/noteIndex?resType=0&resId=381172&sortType=0
默认构造函数,无参数,即,无参数的构造函数就是默认构造函数,并不是这个默认构造函数就一定是编译器给的,编译器给的叫做自动默认构造函数
注意,凡是有构造函数的类,在创建时,要留意构造函数是否有输入参数,若没有,叫做default constructor;若有,则不是默认构造函数,务必赋值。如果该赋值却没赋值,编译器会给一个auto default constructor(这种情况,如果没有给default constructor下定义,就会报错:no matching function blabla……因为你不给参数初始化对象,有没有提供相应的默认构造函数,所以报这样的错)
来源:
https://study.163.com/note/noteIndex.htm?id=271005&type=0#/noteIndex?resType=0&resId=381173&sortType=0
补充:
默认构造函数,没有参数/参数全为默认值
程序没有构造函数,系统隐含生成
程序如果自己定义了构造函数,还需要默认构造函数:
复制构造函数:
默认复制构造相当于重复印刷,而自己定义的构造函数相当于点印刷,个性化需求,如果不希望对象被复制构造,那么用delete
如果没有声明复制构造函数,系统默认生成的:
这篇关于c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(九、十)构造与析构 对象初始化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!