本文已参与「新人创作礼」活动,一起开启掘金创作之路。
c++中struct和class的异同点
相同点:两者都可以用来定义类,也都可以继承 不同点: 1.class的默认继承权限和默认访问权限是私有的,而struct的默认继承权限和访问权限是共有的; 2.class可以定义模板形参,例如:Template<class T, int i>,而struct不可以
面试前,可以适当了解一下class,一般来说,我会比较喜欢用class,因为有模板,说起来也会比较轻松
C++的优点
1.C++在C语言基础上引入了面对对象的机制,同时也兼容C语言。 2.C++有三大特性:①封装;②继承;③多态; 3.C++语言编写出的程序结构清晰、易于扩充,程序可读性好。 4.C++生成的代码质量高,运行效率高,仅比汇编语言慢10%~20%; 5.C++更加安全,增加了const常量、引用、四类cast转换(static_cast、dynamic_cast、const_cast、reinterpret_cast)、智能指针以及try—catch等等; 6.C++可复用性高,C++引入了模板的概念,后面在此基础上,实现了方便开发的标准模板库STL(Standard Template Library)。
说说static关键字的作用
1.定义全局静态变量和局部静态变量:在变量前面加上static关键字。初始化的静态变量会在.data段分配内存,未初始化的静态变量会在.bss段分配内存。直到程序结束,静态变量始终会维持前值。只不过全局静态变量和局部静态变量的作用域不一样;
2.定义静态函数:在函数返回类型前加上static关键字,函数即被定义为静态函数。静态函数只能在本源文件中使用;
3.在变量类型前加上static关键字,变量即被定义为静态变量。静态变量只能在本源文件中使用;
//示例
static int a;
static void func();
4.在c++中,static关键字可以用于定义类中的静态成员变量:使用静态数据成员,它既可以被当成全局变量那样去存储,但又被隐藏在类的内部。类中的static静态数据成员拥有一块单独的存储区,而不管创建了多少个该类的对象。所有这些对象的静态数据成员都共享这一块静态存储空间。
5.在c++中,static关键字可以用于定义类中的静态成员函数:与静态成员变量类似,类里面同样可以定义静态成员函数。只需要在函数前加上关键字static即可。如静态成员函数也是类的一部分,而不是对象的一部分。所有这些对象的静态数据成员都共享这一块静态存储空间。