C++常见面试题 | Day5

16、左值和右值的概念?

C++中左值(lvalue)和右值(rvalue)概念是从C中 传承而来,左值指既能够出现在等号左边,也能吃现在等号右边的变量;右值则是只能出现在等号右边的变量。

int a; // a 为左值

a = 3; // 3 为右值

左值是可寻址变量,有持久性;右值一般是不可寻址的常量,或在表达式求职过程中创建的无名临时对象,短暂性的;

左值和右值主要区别之一是左值可以被修改,而右值不能。

 

17、指针常量和常量指针?

常量指针:指向常量的指针,不能通过指针修改所指对象的值,但是指针本身可以改变,可以指向另外的对象;const int* p = &a;

指针常量:指针类型的常量,这时的指针本身的值不能被修改,但可以通过指针修改其所指向变量的值;int* const p = &a.

 

18、单例模式和观察者模式?

单例模式:通过维护一个static的成员变量来记录唯一的对象实例,通过提供一个static的接口instance来获得唯一的实例,就是一个简单的类的实现;

观察者监听者模式:建立一个一对多的依赖关系,重要的是mvc模式,逆置了事件的发生和事件的处理,同样因为是一对多的关系,所以在这个设计的过程中,采用继承的方式,并且将基类声明为抽象类。

 

19、MVC 模式?

Model View Controller

 

20、如何保证代码的可靠性?

良好的的编程规范+版本管理+测试

posted @ 2021-07-05 15:10  Season_Chu  阅读(44)  评论(0)    收藏  举报