我想从另一个cpp文件中获取值
例如这个在fileone.cpp中:
for (int i = 0; i < NSIZE(facerects); i++)
{
DetPar detpar;
detpar.x = facerect->x + facerect->width / 2.;
*gX=facerect->x;
detpar.y = facerect->y + facerect->height / 2.;
*gY=facerect->y;
}
我希望在file2.cpp中获得* gX,* gY的值
在java中我们可以用getters做到这一点但是在c ++中用简单的方法做什么?答案 0 :(得分:1)
如果在另一个文件中定义了全局变量,则可以使用extern
公开它们。
例如,如果在file2.cpp中,您将变量声明如下:
int *gX; // a pointer to an integer
int *gY;
然后在main.cpp中,您可以使用extern
:
// define these near the top of your cpp file and then use them wherever you need to
extern int *gX; // a pointer to an integer defined elsewhere in your program
extern int *gY;
但是,如果要按照源代码中的方式使用它们,至少要小心指向有效内存。简单地使用int
(不是指针)会更好。
此外,值得考虑使用全局变量SO discussion of global variables in C/C++
的影响答案 1 :(得分:0)
<强> fileone.h 强>
#ifndef FILEONE_H
#define FILEONE_H
extern int *gX;
extern int *gY;
#endif
<强> fileone.cpp 强>
#include "fileone.h"
// These are made available externally via fileone.h
int *gX = NULL;
int *gY = NULL;
<强> filetwo.cpp 强>
#include "fileone.h"
// gX and gY are available, but are defined in fileone.cpp