![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 87
绿风天空
这个作者很懒,什么都没留下…
展开
-
笔面试题记录
在Python中,每个对象都有一个引用计数器,用于跟踪对象被引用的次数。在上述示例中,通过 `(ptr->*funcPtr)(42)` 的方式,使用成员函数指针 `funcPtr` 来调用 `ptr` 指向的对象的成员函数 `memberFunc`。上述示例中,通过 `obj.*ptr` 的方式,使用成员指针 `ptr` 来访问 `obj` 对象的成员 `member`。3. 垃圾回收器的实现:Python的垃圾回收机制是由解释器自身实现的,而Java的垃圾回收器是由Java虚拟机(JVM)提供的。原创 2023-08-16 21:07:41 · 103 阅读 · 0 评论 -
C++ 基础知识 问答题(三)
realloc的参数是内存指针和新的要分配的字节数,在原来的内存块上缩小或扩大内存,如果原来的内存块上无法完成扩展了,那就在一块新的内存块上分配内存,并将原来内存块上的数据复制过去,之后程序员就是用realloc返回的指针来访问原先的数据。会造成菱形继承问题:类B和类C都继承了类A,此时类D多继承类B和类C,在类D中就有了两份的类A的成员变量,会造成内存浪费,也会造成歧义,当你调用类A的成员变量时,编译器不确定你调用的是类B中的,还是类C中的,只能加上类名调用(B::a)。原创 2023-08-06 15:48:49 · 157 阅读 · 0 评论 -
C++ 基础知识 问答题(一)
所以在C++中使用C代码时,为了正确编译C代码,可以使用extern "C"{}来包括C代码,这样编译器就知道要用C语言的规则来编译这段代码。当父类指针指向一个子类对象时,删除该对象,如果父类的析构函数不是虚函数,就会只调用父类的析构函数,不会调用子类的析构函数,造成内存泄漏。如果父类的析构函数是虚函数,那么当删除该对象时,就会根据对象的实际类型取调用析构函数,这样子类对象就会得到正确释放。const常量是常量声明,由编译器处理,有类型安全检查,系统会分配内存,保存在数据段,一旦声明不能取消。原创 2023-07-12 15:22:03 · 443 阅读 · 0 评论 -
C++ 基础知识 面试题(二)
内联是在编译期建议编译器内联,而虚函数的多态性在运行期,编译器无法知道运行期调用哪个代码,因此虚函数表现为多态性时(运行期)不可以内联。inline virtual唯一可以内联的时候是:编译器知道所调用的对象是哪个类(如Base::who()),这只有在编译器具有实际对象而不是对象的指针或引用时才会发生。原创 2023-07-09 20:48:30 · 155 阅读 · 0 评论 -
C++ 基础知识 面试题(一)
当一个变量被声明为volatile时,编译器将不会对该变量进行优化,例如,不会将该变量的值缓存到CPU寄存器中。在C++中,如果想要在派生类中重写基类的函数,通常需要在基类的函数声明中添加virtual关键字,这样才能实现运行时多态。其计算方法为,先用原码表示-42,即将42的二进制(00101010)表示取反,得到11010101,然后将结果加1,得到11010110,这就是-42的二进制补码表示。在运行时,如果调用的是子类对象的该方法,那么就会执行子类中的方法体,而不是父类中的方法体。原创 2023-07-02 15:28:18 · 415 阅读 · 0 评论