请看下面一段很简单的代码,在定义数组的时候就可以把这个数组作为参数传入,到底编译器内部是如何做的呢?非常困惑。请有知道的吗?
#include<iostream>
#include<algorithm>
using namespace std;
class Loss{
public:
Loss(Loss **objs, int _id, int num=0){
this->id = _id;
this->objs = objs;
}
void test(int num){
for(int i=0;i<num;i++){
cout<<objs[i]->id<<" ";
}
cout<<endl;
}
int id;
Loss ** objs;
};
int main(){
Loss * loss[] = {
new Loss(NULL, 111 ),
new Loss(NULL, 222 ),
new Loss(NULL, 333 ),
new Loss(loss, 0, 3) // 这里内部编译过程是怎样的
};
loss[3]->test(3); // 输出: 111 222 333
}