阿卜杜勒·巴里

c++编程语言用于广泛的技术需求,包括客户端-服务器系统、面向对象数据库、实时系统设计,甚至像神经网络和并行编程这样的学科。许多大型软件公司都使用c++,在你的简历上添加一些有用的技能。

通过研究这些常见的C++面试问题,准备与一位未来的招聘经理会面。

以下是c++面试中被问到最多的50个问题。

学习c++编程-初级到高级-在c++中深入学习

2021年9月

  • 279课
  • 所有级别
4.6 (11902)

课堂和实践会议-功能的c++ 11,异常处理和STL -为学术界和工业|阿卜杜勒·巴里

探索课程

1.C和C++有什么区别?

C语言是一种面向过程的编程语言,而c++语言支持面向对象。此外,c++还支持模板、继承、函数重载、虚函数、友元函数和引用等特性。C语言不支持这些特性。

2.OOPS代表什么?

OOPS代表面向对象编程系统,这是c++的分类。

3.什么是函数重载?

函数重载是指有许多同名的函数。对于不同类型的功能,这些函数应该有不同的参数。

4.什么是操作符重载?

操作已存在操作符的操作以实现不同的操作。

5.什么是c++中的类?

类是不同变量和不同函数的集合。变量称为数据成员,函数称为成员函数。

6.什么是朋友类?

如果一个类被提到为另一个类的友元类,那么它可以访问另一个类的私有和受保护的成员。

例子:

class class {private: int a;public: ClassA() {a=10;} friend类;};class FriendClass {private: int b;public: void printClassA(ClassA& p) {cout<< " a= " <

7.如何访问类的数据成员和成员函数?

点运算符(.)有助于访问类的数据成员和成员函数。

8.什么是继承?

继承是一个对象获得另一个类的属性的特性。

9什么是不同类型的继承?

有不同类型的继承-

  • 单继承
  • 多重继承
  • 多级继承
  • 层次继承
  • 混合继承

10.什么是单一继承?

在单继承中,有一个派生类和一个基类。

11.什么是多级继承?

在多级继承中,一个类派生自另一个派生类。

12什么是多重继承?

这是指一个类可以由多个父类派生。

13.什么是层次继承?

在层次继承中,许多类是从单个父类派生的。

14什么是杂交遗传?

这是多个继承的组合,称为混合继承。它也被称为虚拟继承。

15.模板是什么?

模板是用于创建泛型类和泛型函数的方法。

16.什么是访问说明符?有哪些不同的类型?

访问说明符定义类成员的可访问性。有三种类型的访问说明符:

  1. Private—它们只能从类内部访问
  2. 受保护–与私有说明符类似,但具有额外功能–它们也可以在派生类中访问
  3. Public -它们可以从类的内部和外部访问

17.什么是朋友函数?

类的友元函数可以访问类的所有成员,甚至是私有成员。我们在课堂外声明它。

18.什么是虚函数?

虚函数是一个声明为类成员函数的函数,但它的定义在其派生类内部。

19.什么是数据隐藏?

数据隐藏是将数据隐藏在对象中。这通常是通过类的私有数据成员来实现的。

20.什么是构造函数?

构造函数是类的特殊成员函数。当我们声明一个对象时,它初始化数据成员。

21.什么是复制构造函数?

复制构造函数是类的成员函数。在创建类的新对象时调用时,它使用同一类的另一个对象初始化该对象。为了使用复制构造函数,应该已经存在该类的现有对象。

例子:

类复制{private: int a;public: Copy(int z) {a=z;} Copy(Copy &x) {a=x.a;} void print() {cout<< " Value of ' a ' is " <

22.静态成员函数的用途是什么?

如果将类的成员函数设置为静态,则会使其独立于该类的任何对象。即使静态成员函数不存在该类的任何对象,也可以进行该函数的函数调用。

23范围解析使用了多少种方式?

有许多方法可以使用范围解析。一些使用例子包括:

  • 在类外部定义成员函数
  • 在继承过程中访问各种类的数据成员

24.什么是内联函数?

如果函数是内联的,编译器会在编译时调用该函数的每个点上放置该函数代码的副本。

25.说明内联函数的优点。

内联函数增加了程序的执行时间。

26.结构和阶级的区别是什么?

结构的变量是公共的,而类的数据成员可以设置为私有的。

27.局部变量和全局变量之间的区别是什么?

在代码块中声明的变量称为局部变量。我们只能在代码块中使用这个局部变量。全局变量声明在程序的顶部,在所有函数定义之前。可以从代码中的任何地方访问它。

28.什么是编译时间和运行时间?

编译器编译一段代码所花费的时间称为代码的编译时间。程序运行所花费的时间称为运行时间。

29.什么是赋值运算符?

我们使用赋值操作符给变量赋值。用' = '表示。

30.什么是函数重写?

在派生类中重新定义基类的成员函数是函数重写。

31解释多态性。

如果一个对象遵循多态性,那么它在不同的条件下会有不同的行为。多态性有两种类型:

  1. 编译时多态性(静态绑定)
  2. 运行时多态性(动态绑定)

32什么是内部阶级?

嵌套类是在另一个类中声明的类。

33.解释异常处理。

当程序中遇到异常时,使用异常处理。三个关键字用于异常处理:try、catch、throw。

34.什么是析构函数?

析构函数是一种特殊的成员函数。析构函数析构对象并释放空间。

35虚拟析构函数的用途是什么?

当我们试图使用基类指针删除派生类的对象时,会遇到一些未定义的问题。为了防止这种情况,应该在基类中定义虚析构函数。

36STL的完整形式是什么?

STL是标准模板库的缩写。

37.我们可以在集合中存储重复的值吗?

不,我们不能在集合中存储重复的值。

38.map使用什么类型的数据结构?

Map使用BST作为其数据结构。

39我们可以用数组初始化向量吗?

是的,我们可以用数组初始化vector。

40.STL有哪些组件?

STL的一些组件是迭代器、容器和算法。

41.final怎么用?

在声明函数时,在函数名后面添加' final ',以防止在派生类中重写。

42.编写一个c++程序,使用字符串迭代器查找字符串的长度。

#使用命名空间std包括;int main(){string str=“welcome”;string::iterator it;int count=0;for(it=str.begin();it!=str.end();it++){cout<<“长度为”<

43.编写一个c++程序,将给定的字符串全部改为大写。

#include using namespace std;int main() {string str="wELcoMe7";(int i = 0; str[我]! = ' \ 0 ';我+ +){如果(str[我]> = 97 & & str[我]< = 122){str[我]= str[我]-32;}} cout < < str < < endl;返回0;}

44.编写一个c++程序来检查一个字符串是否是回文。

#使用命名空间std包括;int main(){string str=“MADAM”;string rev=“”;int len=(int)str.length();rev.resize(len);for(int i=0;j=len-1;i

45.编写一个c++程序来显示函数模板。

# include using namespace std;Template  t maxim(t a,t b) {return a>b?a:b;} int main() {cout<

46.编写一个c++程序来显示指向对象的指针。

# include using namespace std;Class rectangle {public: int length;int宽度;Int area(){返回长度*宽度;} int周长(){返回周长2*(长度+宽度);}};Int main(){矩形r1;矩形* ptr;ptr = r1;ptr - >长度= 10; ptr->breadth=5; cout<area()<perimeter()<

47.编写一个c++程序,显示使用友元函数的操作符重载。

# include using namespace std;类complex {private: int real;int img;Public: complex(int r=0,i=0) {real=r;img =我;} void display() {cout<

48.使用访问说明符编写一个c++程序。

# include using namespace std;类的基类{public: int a;Void display() {cout<<"display of base"<

49.写一个c++程序显示继承。

# include using namespace std;Class rectangle {private: int length;int宽度;Public: void setlength(int l) {if(l>0) length=l;其他长度= 1;} void setwidth (int b) {if(b>0) width =b;其他宽度= 1;} int getlength(){返回长度;} int getwidth(){返回宽度;} int area(){返回长度*宽度; } int perimeter() { return 2*(length+breadth); } }; int main() { rectangle r1; r1.setlength(10); r1.setbreadth(5); cout<<"r1.area()<

50.编写一个显示多态性的c++程序。

# include using namespace std;Class car {public: virtual void start() {cout<<"car started"< start ();p =新斯威夫特(); ptr->start(); }

51为嵌套类编写C++示例程序。

#使用命名空间std包括;类外部{class-inner;public:void-fun(){i.display();}类内部{public:void-display(){cout<<“内部的显示”<

52编写一个C++程序,显示函数之间的抛出和捕获。

# include using namespace std;Int除法(Int a, Int b) {if(b==0) throw 1;返回a / b;} int main() {int x=10,y=2,z;Try {if(y==0) throw 1;z = x / y;cout z < < < < endl;} catch(int e) {cout<<"除0 "<

53.编写一个c++程序使用从STL的向量。

#使用命名空间std包含;int main(){vectorv={2,4,6,8,10};v.push_back(20);v.push_back(30);vector::迭代器itr;cout<<“使用迭代器”<

54.编写一个c++程序使用映射从STL。

# include # include using namespace std;Int main() {map< Int,string> m;m.insert(一对< int,字符串>(1,“约翰”));m.insert(一对< int,字符串>(2,拉维));m.insert(一对< int,字符串>(3,“汗”));map < int,字符串>::iterator itr;(itr = m.begin (); itr ! = m.end (); itr + +) {cout < < itr - >第一< < " " < < itr - >第二< < endl;地图}< int,字符串>::iterator itr1;itr1 = m.find (2);cout < <“发现价值”< < endl; cout<first<<" "<second<

55.编写一个c++程序显示auto的使用。

# include using namespace std;Float fun() {return 2.34f;} int main() {double d=12.3f;int i = 9;汽车x = 2 * d +我;cout < < x;}

56.编写一个c++程序来显示Lambda函数。

# include using namespace std;int main () {[] (int x, int y) {cout < <”和“x + y < < < < endl;}(10、30);}

57编写椭圆的C++程序。

#include #include using namespace std;Int sum(Int n,…){va_list list;va_start(列表,n);int x;int s = 0;For (int i=0;i

58.写一个c++程序写在一个文件。

# include # include using namespace std;Int main() {ofstream ofs("my.text",ios::trunc);ofs < <“约翰”< < endl;25 ofs < < < < endl;ofs < <“cs”< < endl;ofs.close ();}

59.编写一个c++程序来读取文件。

# include # include using namespace std;Int main() {ifstream if;ifs.open(“my.txt”);If (ifs_open()) cout<<"file is opened"< >名称> >卷> >分支;ifs.close ();cout < <“name”< < < <名称endl; cout<<"roll"<

页面最后更新:2020年9月

C++课程

C++ 20的大师班:从基础到高级
丹尼尔Gakwaya
4.7 (101)
评价最高
c++基础:游戏编程初学者
GameDev.tv团队Sam Pattuzzi
4.6 (347)
热&新
数据结构和算法使用c++:零到精通2021
Ankit Thakran, Harsh Kajla
4.6 (632)
精通c++编程从初学者到高级- c++课程
比特博德-维迪内什学院
4.5 (730)
虚幻引擎c++开发人员:学习c++和制作视频游戏
Ben Tristem,Sam Pattuzzi,GameDev.tv团队
4.6 (54,177)
畅销书
开始C++编程——从初学者到超越
Tim Buchalka的学习编程学院Frank Mitropoulos博士
4.6 (40323)
畅销书
虚幻c++多人游戏大师:中级游戏开发必威真人投注
Ben Tristem,Sam Pattuzzi,GameDev.tv团队
4.5 (1,782)
现代c++的设计模式
Dmitri Nesteruk
4.5 (3827)
完整现代c++ (c++ 11/14/17)
Umar孤独的
4.5 (3518)
学习C++开发游戏必威真人投注
Stephen Ulibarri
4.6 (2007)
现代c++并发深度(c++ 17/20)
Kasun Liyanage
4.3 (1008)

更多的c++课程

让你的团队。领导行业。

使用Udemy for Business订阅您所在组织的在线课程和数字学习工具库。

请求一个演示

Abdul Bari的课程

掌握C和c++语言的数据结构和算法
阿卜杜勒·巴里
4.6 (21,173)
畅销书
学习JAVA编程——从初级到精通
阿卜杜勒·巴里
4.6 (2983)

Abdul Bari的课程