C++结构体解决方法

C++结构体
今天在看程序的时候看到了这么一个结构体定义,
struct MyPair{
    int id;
    double value;
    MyPair(int i=0,double v=0):id(i),value(v){}
};
对最后一句 MyPair(int i=0,double v=0):id(i),value(v){}很疑惑,这是在定义时赋初值吗?但结构体不是不能在定义时赋初值吗?
C++基础知识不扎实,现在努力学习中,求点拨呀~谢谢~
------解决思路----------------------
这是结构体的构造函数

struct就是一个class,就是有些区别而已
------解决思路----------------------
Struct 和Class 类似,都可以有成员变量和构造函数的;
------解决思路----------------------
在c++中,你可以把struct理解成class,class有的,它都可以有。
------解决思路----------------------
c++的结构体有OOP的概念了,所以支持这个写法。
------解决思路----------------------
可以把struct理解成class,但都是 public 属性。