为什么main函数输出的n是0?static修饰的n为什么可以在其他文件中使用?
/*main.cpp*/
#include "Cat.h"
#include <iostream>
using namespace std;
void main(){
fn1();
n=n+1;
cout<<n<<endl;
fn1();
fn1();
fn1();
fn1();
fn1();
fn1();
cout<<n<<endl;
}
/*Cat.h*/
class Cat{
int id;
static int count;
public:
Cat(int id):id(id){
count++;
}
Cat(const Cat &c);
~Cat();
int getId();
static int getCount();
};
/*问题相关代码片段*/
static int n=0;
void fn1();
/*Cat.cpp*/
#include "Cat.h"
#include <iostream>
using namespace std;
int Cat::count=0;
int Cat::getCount(){
return count;
}
Cat::Cat(const Cat &c){
count++;
id=count;
}
Cat::~Cat(){
count--;
}
int Cat::getId(){
return id;
}
/*问题相关代码片段*/
void fn1(){
n=n+1;
cout<<n<<endl;
}