一丶构造函数
知识点1:构造函数—特殊的成员函数,用来控制对象的初始化过程。无返回类型,可重载,不能被声明为const.
知识点2:若无,则有默认的构造函数,是编译器自己隐式的定义的。又称合成的默认构造函数。
知识点3:某些类是不能使用默认的构造函数的,以下三个原因:
1:在未声明任何构造函数的前提下,类内对象的初始化将不受控制
2:合成的默认构造函数可能会造成不必要的错误,如若没有类内初始值来初始化成员,可能这些成员将是未定义的。
3:如果类中包含了一个其他类类型的成员,且这个成员的类型没有默认构造函数,那么编译器将无法初始化该对象。
所以,在撰写类的时候,最好定义一个自己的构造函数。
知识点4:知识点:内部外部定义构造函数是不影响的
将其移至内部即可
二丶封装的优点
封装实现了类的接口和实现的分离,隐藏了类的实现细节,用户只能接触到类的接口。
优点:
1.隐藏类的实现细节;
2.让使用者只能通过程序规定的方法来访问数据;
3.可以方便的加入存取控制语句,限制不合理操作;
4.类自身的安全性提升,只能被访问不能被修改;
5.类的细节可以随时改变,不需要修改用户级别的代码;
三丶友元函数
友元—类允许其他类或者函数访问其非共有成员,只要在本类内,加一条类前或者函数前有friend关键字(最前方)的声明即可。最好在类的开始或结尾集中声明友元。
优点:可以灵活地实现需要访问若干类的私有或受保护成员才能完成的任务,便于与其他不支持类的语言进行混合编程;通过使用友元函数重载可以更自然地使用C++语言的I/O流库。
缺点:一个类将对非公有成员的访问权授予其他的函数或类,会破坏该类的封装性,降低该类的可靠性和可维护性。