一、C++相比C的改进
C语言是过程式编程语言,它以过程为中心,以算法为驱动。
C++是面向对象的编程语言,它是从C语言发展过来的。它以对象为中心,以消息为驱动的编程。
二、class和struct的区别
1、C语言中的struct和C++中的class的区别
在C语言中的struct中只能 定义成员变量,不能定义成员函数。
在C++中的class,可以定义成员变量,同时还可以定义成员函数。
2、C++中的struct和class的区别
在C++中扩充了对struct的用法,我们可以在struct中定义成员变量和成员函数。
区别:
class中的成员访问权限默认是private的
struct中的成员访问权限默认是public的
三、静态成员变量的使用
这题主要考的是我们对类的静态成员变量的理解。
类的静态成员被当做该类类型的全局变量,静态成员对于每个类的类型来说只有一个复制品,该类类型的所有成员都共享这个静态成员。
但是类的非静态成员对于每个类对象它们都有一个自己的复制品。
#include<iostream>
using namespace std;
class Myclass
{
public:
Myclass(int a, int b, int c);
void GetNumber();
void GetSum();
private:
int A;
int B;
int C;
int Num;
static int Sum;
};
int Myclass::Sum = 0;
Myclass::Myclass(int a, int b, int c)
{
A = a;
B = b;
C = c;
Num = A + B + C;
Sum = A + B + C;
}
void Myclass::GetNumber()
{
cout << "Num = " << Num << endl;
}
void Myclass::GetSum()
{
cout << "Sum = " << Sum << endl;
}
int main()
{
Myclass M(3, 7, 10), N(14, 9, 11);
M.GetNumber();
N.GetNumber();
M.GetSum();
N.GetSum();
system("pause");
return 0;
}
我们在Myclass中定义了一个静态成员变量Sum,因为静态成员变量是该类类型所有成员共享的,所以在定义了N对象之后,它的Sum值就发生了变化,然后打印出来的结果就会和M打印个结果一样,是34。但是Num只是普通的成员变量,所以该类类型的对象都有一份复制品,因此M和N对象打印出来的结果不一样。
四、与全局对象相比,使用静态数据成员有什么优势
1、静态数据成员没有进入程序的全局的名字空间,因此不存在和程序中其他全局名字冲突的可能性
2、使用静态数据成员可以隐藏信息。因为静态成员可以是private成员,而全局变量不能。
五、构造函数和析构函数是否可以被重载
构造函数是可以被重载的。
析构函数是不可以被重载的,因为析构函数只能有一个。