19,c++的using namespace std是做什么的?

关键字using是为了标识使用该命名空间时,不需要使用限定符号::。

namespace是定义命名空间所必须的关键字,如:

namespace aaa
{
int a;
double b;
}

这里的aaa就是用户自己定义的命名空间的名字,用户使用是就要加上命名空间名和作用域限定符::。

作用相当于,限定了1班还是2班的aaa,程序大了,变量重名的可能性大,引入命名空间就是解决这个问题。

std是标准命名空间名称。

详细可看参考2和3。

20,哪些函数不能被声明为虚函数?

普通函数(非成员函数),构造函数,内联成员函数,静态成员函数,友元函数。

a,虚函数用于基类和派生类,所以普通函数不能被声明为虚函数;

b,虚函数采用的是“虚”调用,所以构造函数不能是虚函数,但是析构函数常常是虚函数;

c,内联成员函数的实质是在调用的地方将代码展开,所以也不能是虚函数;

d,继承时,静态成员函数不能被继承,它只属于一个类,继承不了,所以也不能是虚函数;

详细可看参考4。

e,友元函数不是类的成员函数,继承不了,因此也不能是虚函数。

21,类的静态成员和非静态成员有什么区别?

代码上的区别就是是否有static关键字,有的话就是静态成员,没有的话就是非静态成员。

静态成员属于类,该类的所有对象,共同拥有这一个成员。

详细可看参考5。

22,类的成员函函数,全局函数,友元函数的区别?

当需要访问私有权限的数据成员或者成员函数,需要用到友元函数。

friend void 函数名(参数);

友元函数不属于类,但是可以访问类。

详细请看参考6。

23,STL是什么?

STL是Standard Template Library的简称,中文名标准模板库,惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。从根本上说,STL是一些“容器”的集合,这些“容器”有list,vector,set,map等,STL也是算法和其他一些组件的集合。这里的“容器”和算法的集合指的是世界上很多聪明人很多年的杰作。STL的目的是标准化组件,这样就不用重新开发,可以使用现成的组件。STL现在是C++的一部分,因此不用安装额外的库文件。

24,c和c++的区别和联系?

从机制上:

c是面向过程的(但c也可以编写面向对象的程序);c++是面向对象的,提供了类。但是,c++编写面向对象的程序比c容易。

从适用的方向:

c适合要求代码体积小的,效率高的场合,如嵌入式;c++适合更上层的,复杂的; llinux核心大部分是c写的,因为它是系统软件,效率要求极高。

从名称上也可以看出,c++比c多了+,说明c++是c的超集;那为什么不叫c+而叫c++呢,是因为c++比c来说扩充的东西太多了,所以就在c后面放上两个+;于是就成了c++。

C语言是结构化编程语言,C++是面向对象编程语言。

C++侧重于对象而不是过程,侧重于类的设计而不是逻辑的设计。

参考1:​​https://baijiahao.baidu.com/s?id=1608054583348661116&wfr=spider&for=pc​