我查了查提出一种解决,大家讨论一下,不确定对哈。 两个文件a,b定义两个类A,B,把全局变量x,y的初始化放到类A,B中,其中类B的构造函数依赖于类A全局变量,保证B的初始化在A之后,即保证y在x之后初始化。 //1.h
#pragma once
#include<iostream>
using namespace std;
int x;
class A {
public:
A() {
x = 5;
cout << "全局变量x初始化" << endl;
}
};
A a;
//2.h
#pragma once
#include<iostream>
#include"1.h"
using namespace std;
extern A a;
extern int x;
int y;
class B {
public:
B() {
cout << "B()" << endl;
}
B(A) {
y = x;
cout << "全局变量y初始化" << endl;
}
};
B b(a);
//main.h
int main(){
return 0;
}