请参阅下面我的c代码片段 . 因为foo.h是在int main(int argc,char * argv [])之前执行的,所以数组RedApple将初始化为0并导致错误 . 处理这个问题的最佳方法是什么?有没有办法在foo.h中保留类声明,但是从用户输入中在foo.cpp中初始化它?谢谢!
在foo.h中
#include <vector>
extern int num;
class apple
{
std::vector<long> RedApple;
public:
apple(): RedApple(num)
}
在foo.cpp中
#include "foo.h"
int num;
int main(int argc, char *argv[])
{
sscanf_s(argv[1],"%d",&num);
}
1 回答
在foo.h中
在foo.cpp中
EDIT: 为了回应Klaus ' complaint I thought I' d添加初始化的解释,我正在评论
apple foo = num > 0 ? apple(num) : apple();
行,所以我会在每个单词上对它进行垂直评论: