C++面向对象常考题
来源:互联网 发布:航海家软件准不准? 编辑:程序博客网 时间:2024/05/21 11:28
C++面向对象常考题
面向对象的三个基本特征,并简述之
- 封装
将客观事物抽象成类,每个类对自身的数据和方法实行protection
- 继承
public private protected三种继承
公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的,不能被这个派生类的子类所访问。
私有继承的特点是基类的公有成员和保护成员都作为派生类的私有成员,并且不能被这个派生类的子类所访问。
保护继承的特点是基类的所有公有成员和保护成员都成为派生类的保护成员,并且只能被它的派生类成员函数或友元访问,基类的私有成员仍然是私有的。
#include <iostream>using namespace std;class A{public : A() { a = 10; }protected: int a;};class B:public A{public: int getAa() { return a; }};int main(){ B b; cout<<b.getAa()<<endl; cout<<b.a<<endl; // b.a is private or protected, you can not access it.}
http://blog.chinaunix.net/uid-20665441-id-305470.html
多态
是将父对象设置成为和一个或更多的它的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是:允许将子类类型的指针赋值给父类类型的指针。
重载与重写
定义上不同,重载是不同函数签名,只是函数名字一样而已。重写是发生在类中,是子类重新定义父类虚函数的方法。
实现原理上不同。对两个函数签名不一样的函数的调用,在编译阶段就可以确定,是静态调用,地址在编译器就绑定了。因此重载与多态无关。
重写与多态有关。当子类重新定义了父类的虚函数后,父类指针根据赋给它的不同的子类指针,动态的调用属于子类的该函数。这样的函数调用在编译期间是无法确定的(调用的子类的虚函数的地址无法给出)。因此这样的函数地址是在运行期绑定的(晚绑定)。
0 0
- C++面向对象常考题
- 面向对象考题收集
- C++ 面试常考题
- 面向对象设计开卷考题A
- 面试EJB常考题
- 网络常考题
- 面试常考题
- android面试常考题
- c++基础常考题
- c++常考题
- 软件测试常考题
- Servlet面试常考题
- C++面向对象的常考知识点
- J2SE面向对象编程(灰常重要)
- C考题
- C++ 笔试面试常考题
- java高级常考题总结
- java面试常考题2
- 《乖,摸摸头》读书笔记
- 判断一个点是否在多边形内部 [2] 射线法实现
- Java内部类详解
- phpExcel实现Excel数据的导入导出(全步骤详细解析)
- 合并果子(STL堆排序)
- C++面向对象常考题
- Centos启动流程
- VS dll和lib的创建及使用
- ES 批量bulk 备忘
- 如果你喜欢上了一个程序员小伙,献给所有的程序员女友
- 判断一个点是否在多边形内部 [3] 回转数法
- mysql 5.7 invalid default value for timestamp field
- 收集整理的非常有用的PHP函数
- mysql初始登录及添加新用户