运算符重载的三种方式?
答:普通函数,友元函数,类成员函数。
对象间是怎样实现数据的共享的?
答:通过类的静态成员变量来实现对象间的数据共享。
静态成员变量占有自己独立的空间不为某个对象所私有。
静态函数存在的意义?
答:静态私有成员在类外不能被访问,可通过类的静态成员函数来访问;
当类的构造函数是私有的时,不像普通类那样实例化自己,只能通过静态成员函数来调用构造函数。
函数重载是什么意思?它与虚函数的概念有什么区别?
函数重载是一个同名函数完成不同的功能,编译系统在编译阶段通过函数参数个数、参数类型不同,函数的返回值来区分该调用哪一个函数,即实现的是静态的多态性。
但是记住:不能仅仅通过函数返回值不同来实现函数重载。
虚函数实现的是在基类中通过使用关键字virtual来申明一个函数为虚函数,含义就是该函数的功能可能在将来的派生类中定义或者在基类的基础之上进行扩展,系统只能在运行阶段才能动态决定该调用哪一个函数,所以实现的是动态的多态性。它体现的是一个纵向的概念,也即在基类和派生类间实现。
虚函数是怎么实现的?
虚函数是一种实现多态的机制,它可以让基类的指针或引用根据实际指向的对象类型来调用相应的成员函数。虚函数的实现原理是通过虚函数表和虚函数表指针来实现的。
每个含有虚函数的类都有一个虚函数表,存储了该类的所有虚函数的地址。
每个含有虚函数的对象都有一个虚函数表指针,指向该对象所属类的虚函数表。当通过基类的指针或引用调用虚函数时,程序会先通过虚函数表指针找到虚函数表,然后再通过虚函数表找到对应的虚函数地址,最后调用该地址所指向的函数。这样就实现了动态绑定,即在运行时根据对象类型确定调用哪个函数。
在什么时候使用常引用?
答:如果既要利用引用提高程序的效率,又要保护传递给函数的数据不在函数中被改变,就应使用常引用。


30

被折叠的 条评论
为什么被折叠?



