Intenta 理论题

1. new int[] 循环在堆内生成数组,用delete能否清空堆内存?

不可以,delete和new需配对出现,不能通过一次delete删除所有开辟的堆空间,会造成内存泄漏。

2. struct 浅拷贝和深拷贝之间的区别,拷贝后改变一个是否会影响另一个
浅拷贝只是对指针的拷贝,拷贝后两个指针指向同一个内存空间,深拷贝不但对指针进行拷贝,而且对指针指向的内容进行拷贝,经深拷贝后的指针是指向两个不同地址的指针。不是指针就不会互相影响。

3. 派生类对象
派生类对象中包含基类对象,因此派生类对象在创建时,除了要调用自身的构造函数进行初始化外,还要调用基类的构造函数初始化其包含的基类对象。因此,程序中任何能够生成派生类对象的语句,都要说明其包含的基类对象是如何初始化的。
如果对此不做说明,则编译器认为基类对象要用无参构造函数初始化——如果基类没有无参构造函数,则会导致编译错误。
在执行一个派生类的构造函数之前,总是先执行基类的构造函数。

4. c++类内不能直接给成员赋值,要在构造函数中赋值,否则会出错

posted on 2020-11-26 17:51  只争朝夕,不负韶华!  阅读(126)  评论(0)    收藏  举报