1.什么是接口?
类的接口包括用户能执行的操作。
对于类,我们说公共接口。公共(public)=使用类的程序;接口=编写类的人提供的方法->能够编写与类对象交互的代码,使程序能使用类对象。
可以把接口认为是吸管,要喝到类里面的饮料(类中的各种数据),必须使用接口。即用户执行操作,不需要拆开瓶子接触饮料本身(接触数据成员等),就可以实现类的功能。
2.什么是类的实现?
类的实现=类的数据成员+负责接口实现的函数体+定义类需要的私有函数。
3.接口组成部分的非成员函数
只要函数可以帮助完成从外读取数据成员,就可以是接口。非成员函数并不定义在类内,但依然能够提供方法。
4.以对象函数形参与拷贝构造函数
1. 函数调用时,如果一个对象的引用作为形参时,形参与实参共用一块内存。
2. 函数返回时,如果返回一个对象的引用时,返回值与函数内返回的变量共用一块内存(原生数据类型有效)。(注意:函数返回值以“=”或“()”给类对象的赋值时,还会会经过一次拷贝函数,那么不会共用一块内存)
3. 函数调用时,如果一个对象的值作为形参时,拷贝构造函数就创建一个临时对象,函数执行完就析构。
4 .系统生成的拷贝构造函数拷贝每一个数据成员的值。
5.自定义的拷贝构造函数可以决定拷贝那个数据成员(vs2010中,其他未拷贝的数据成员默认值为858993460)。
6. 回函数内的作为临时变量的引用是很危险的。(形如 X & refF( X x){ return x; } )
5.一部分函数形参为引用的原因:
函数在调用完成两项工作:用实参初始化函数对应的形参
6.this的使用
this只能用于非静态成员函数内部。
7.函数的return语句没有&时返回一个副本,而又&时返回本身。如果是:classname &func(...){ ... return * this)
这个不返回对象的副本,而是返回对象本身。