C++面向对象面试题知识点整理

本文主要介绍了C++中的面向对象设计,包括面向对象的三大特性:封装、继承和多态,以及类、struct的区别,静态成员变量的使用,虚函数与多态的概念,重写和重载的区别,同时还探讨了析构函数和内联函数的相关知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

面向对象
a.编程是在计算机中反映世界
面向系统设计带来的种种便利
(1)良好的可复用性
(2)易维护
(3)良好的可扩充性


b.以下选项中哪一个不是面向对象设计?
(1)面向对象设计的三原则:继承,封装,多态
(2)里氏代换原则是继承复用的基石
(3)开闭原则是面向对象设计的重要特性之一,软件对扩展应该是开放的,对修改应该是关闭的。
(4)防御性编程知识一种编程技巧,与面向设计无关


c.什么是封装?
从字面意思来看,封装就是把一些相关的东西打包成一坨,分装最广为人知的例子,就是在面向对象编程里面,把数据和针对该数据的操作,统一到一个class里面


interface属于继承,virtual属于多态,private属于封装


d.C++中的空类默认产生哪些类成员函数?


对于一个空类,编译器默认产生4个成员函数,默认构造函数,析构函数,复制构造函数,赋值函数


e.struct 和 class 的区别(简单介绍)


区别是Class中的变量默认是private,struct中的变量默认是public。
struct可以有构造函数,析构函数,之间也可以继承,C++中的struct其实和class意义一样,唯一不同的是struct里面的默认访问权限是public,class默认的访问权限是private。


C++中存在struct关键字的唯一意义就是为了让C程序员有个归属感,是为了让C++编译器兼容以前用C开发出来的项目。


f.哪一种成员变量可以在同一个类的实例之间实现共享?


必须使用静态成员变量在一个类的所有实例之间共享数据
(1)如果想限制对静态成员变量访问,则必须把他们声明为保护型或者私有型
(2)不允许用静态成员变量去存放某一个对象的数据
(3)静态成员数据是在这个类的所有对象之间共享的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值