c++面经知识汇总(STL中迭代器的作用、类成员的访问权限、struct和class的区别,类中定义应用数据成员)

本文探讨了STL迭代器的作用及其与指针的区别,解释了迭代器如何提供一种顺序访问容器中对象的方法而不暴露底层实现。此外,还讨论了C++中类的访问权限以及struct与class之间的差异。

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

STL中的迭代器有什么作用,为什么有指针之后还要使用迭代器
  1. 首先,迭代器的具有提供一种方法,可以顺序的访问容器中的对象,但是有又不会暴露底层内部表示。
  2. 迭代器和指针的区别:
    1. 迭代器不是指针,它是一种类模板,虽然他模拟了指针的一些功能,如重载了++、–等,迭代器封装了指针,他其实是一个可以遍历STL中全部元素的对象,它可以适应任何类型,也可以根据不同的类型来实现++、-- 等操作;
    2. 迭代器返回的是对象的引用,而不是对象的值;
  3. 产生迭代器的原因就是,可以通过迭代器,不在意类型的区别,同样也不用暴露内部的结构,就可以达到循环遍历集合的效果。
c++中类的访问权限
  1. public 任何类都可以使用可以使用
  2. private 只有本类的成员函数可以使用
  3. protected 只有本类成员函数和友元可以使用
struct和calss的区别
  1. struct存放在栈中,class存放在堆中
  2. struct在没有声明成员的访问修饰符的时候,默认是public,erclass默认是private;
  3. struct默认是使用private继承,而class默认是public继承
  4. 至于为什么没有抛弃struct,是因为想要c程序员更加有归属感,并且可以更好地用c++编译器兼容以前的c项目

如果你感觉你写的东西更像一个数据结构,那么就用struct,如果更像一个对象,那么就用class

c++类中可以定义引用数据成员吗

可以,但是必须在构造函数的初始化列表中进行初始化,如果有多个构造函数,则每个构造函数的构造列表中必须都要对其进行初始化;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值