0

我想从另一个 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++ 中实现它的简单方法是什么?

4

2 回答 2

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 讨论 C/C++ 中的全局变量

于 2013-06-07T02:03:21.370 回答
0

文件一.h

#ifndef FILEONE_H
#define FILEONE_H

extern int *gX;
extern int *gY;

#endif

文件一.cpp

#include "fileone.h"

// These are made available externally via fileone.h
int *gX = NULL;
int *gY = NULL;

文件二.cpp

#include "fileone.h"

// gX and gY are available, but are defined in fileone.cpp
于 2013-06-07T02:04:20.697 回答