摘要:
# 116.如何禁止程序自动生成拷贝构造函数? ##### 1.为了阻止编译器默认生成拷贝构造函数和拷贝赋值函数,我们需要手动去重写这两个函数,某些情况下,为了避免调用拷贝构造函数和拷贝赋值函数,我们需要将他们设置成private,防止被调用。 ###### 1.1手动重写这两个函数 在C++中 阅读全文
摘要:
# 115.如何阻止一个类被实例化?有哪些方法? 1.将类定义为抽象基类或者将构造函数声明为private; 将类定义为抽象类:抽象类是不能被实例化的,只能被继承。通过将类定义为抽象类,可以防止该类被实例化。 ```C++ class AbstractClass { public: virtual 阅读全文
摘要:
# 114.你知道数组和指针的区别吗? 1.数组在内存中是连续存放的,开辟一块连续的内存空间;数组所占存储空间:sizeof(数组名);数组大小:sizeof(数组名)/sizeof(数组元素数据类型); 2.用运算符sizeof 可以计算出数组的容量(字节数)。sizeof(p),p 为指针得到的 阅读全文
摘要:
# 113.将引用作为函数参数有哪些好处? 1.传递引用给函数与传递指针的效果是一样的。 这时,被调函数的形参就成为原来主调函数中的实参变量或对象的一个别名来使用,所以在被调函数中对形参变量的操作就是对其相应的目标对象(在主调函数中)的操作。 2.使用引用传递函数的参数,在内存中并没有产生实参的副本 阅读全文
摘要:
# 112.说一说strcpy、sprintf与memcpy这三个函数的不同之处 1.复制的内容不同。strcpy只能复制字符串,而memcpy可以复制任意内容,例如字符数组、整型、结构体、类等。 2.复制的方法不同。strcpy不需要指定长度,它遇到被复制字符的串结束符"\0"才结束,所以容易溢出 阅读全文
摘要:
# 111.在进行函数参数以及返回值传递时,可以使用引用或者值传递,其中使用引用的好处有哪些? 对比值传递,引用传参的好处: 1)在函数内部可以对此参数进行修改 2)提高函数调用和运行的效率(因为没有了传值和生成副本的时间和空间消耗) 如果函数的参数实质就是形参,不过这个形参的作用域只是在函数体内部 阅读全文
摘要:
# 110.成员初始化列表会在什么时候用到?它的调用过程是什么? 1.当初始化一个引用成员变量时; ```C++ struct MyClass { const int mya; int& myb; MyClass(int a, int& b) :mya(a), myb(b) {} ~MyClass( 阅读全文
摘要:
# 109.怎么快速定位错误出现的地方? 1.如果是简单的错误,可以直接双击错误列表里的错误项或者生成输出的错误信息中带行号的地方就可以让编辑窗口定位到错误的位置上。 2.对于复杂的模板错误,最好使用生成输出窗口。 多数情况下出发错误的位置是最靠后的引用位置。如果这样确定不了错误,就需要先把自己写的 阅读全文