//student.h
#include<iostream>
using namespace std;class Student{
 int id;
public:
Student(int d):id(d){
cout<<"Student"<<"\n";
}
void print(){cout<<id<<"\n";}
};class Tutor{
Student s;
public:
Tutor(Student& st):s(st){cout<<"tutor\n";s.print();}
};//aaa.cpp
#include"student.h"
Student ra(18);
//bbb.cpp
#include"student.h"
extern Student ra;
Tutor je(ra);
extern int iid;
void main(){}对于以上的程序,运行结果为:
tutor
0
student
教材上说,je这个全局对象先构造,所以是这个结果。
我想:在执行 Tutor je(ra);这条语句的时候,ra此时是个对象吗,如果是它为什么不调用构造函数。