菜鸡求解这个一直没看懂

C(int x,int y):A(x),B(y){}就这段代码啥意思啊
#include
using namespace std;
class A
{
private:
int a;
public:
A(int x):a(x){}
void show()const
{
cout<<"a"<<a<<endl;
}
};
class B:public A
{
protected:
int b;
public:
B(int x,int y):A(x),b(y){}
void show()const
{
void show();
cout<<"b"<<b<<endl;
}
};
int main(void)
{
B obj(5,18);
obj.show();
system("pause");
return 0;
}

C应该是个类的构造函数,接受两个参数,冒号后面大括号前面的是初始化列表
把x的值给A,把y的值给B,新手可以这样理解
C(int x,int y)
{
A=x;B=y;
}
但是这个赋值操作是在函数体前执行的