常见C ++面试问题
在这里,我们将看到一些重要的C++面试问题。
C和C++有什么区别?
指针和引用之间有什么区别?
指针和引用之间的主要区别是-
引用用于引用另一个名称中的现有变量,而指针用于存储变量的地址。
引用不能分配空值,但指针可以。
引用变量可以按值传递,而指针可以引用但按引用传递。
必须在声明时初始化引用,而在使用指针的情况下则不需要。
引用与原始变量共享相同的内存地址,但也占用堆栈上的一些空间,而指针在堆栈上有其自己的内存地址和大小
什么是C++中的虚函数?
C++中的虚函数用于创建基类指针和任何派生类的调用方法的列表,甚至不知道派生类对象的种类。虚函数在运行时解析得较晚。
如果基类中的虚函数声明为成员函数一次,则它在从该基类派生的每个类中均变为虚函数。因此,在声明虚拟基类函数的重新定义版本时,在派生类中不必使用关键字virtual。
示例
#include<iostream>
using namespace std;
class B {
public:
virtual void s() {
cout<<" In Base \n";
}
};
class D: public B {
public:
void s() {
cout<<"In Derived \n";
}
};
int main(void) {
D d; // An object of class D
B *b= &d; // A pointer of type B* pointing to d
b->s(); // prints"D::s() called"
return 0;
}输出结果
In Derived
C++中的这个指针是什么?
C++中的每个对象都可以通过称为此指针的重要指针访问其自己的地址。this指针是所有成员函数的隐式参数。因此,在成员函数内部,这可以用于引用调用对象。
友元函数没有this指针,因为朋友不是类的成员。仅成员函数具有this指针。
让我们尝试以下示例以了解此指针的概念-
示例
#include <iostream>
using namespace std;
class Box {
public:
//构造函数定义
Box(double l = 2.0, double b = 2.0, double h = 2.0) {
cout <<"构造函数称为。" << endl;
length = l;
breadth = b;
height = h;
}
double Volume() {
return length * breadth * height;
}
int compare(Box box) {
return this->Volume() > box.Volume();
}
private:
double length; // Length of a box
double breadth; // Breadth of a box
double height; // Height of a box
};
int main(void) {
Box Box1(3.3, 1.2, 1.5); // Declare box1
Box Box2(8.5, 6.0, 2.0); // Declare box2
if(Box1.compare(Box2)) {
cout << "Box2 is smaller than Box1" <<endl;
} else {
cout << "Box2 is equal to or larger than Box1" <<endl;
}
return 0;
}输出结果
构造函数称为。 构造函数称为。 Box2 is equal to or larger than Box1
热门推荐
10 小红书平安祝福语简短
11 生日祝福语大全女孩简短
12 收生日红包祝福语 简短
13 领证幽默祝福语简短
14 法考面试祝福语简短
15 老哥出门祝福语简短语
16 送灯祝福语简短独特
17 幼儿狗年祝福语大全简短
18 好听的元旦简短祝福语