gpt4 book ai didi

c++ - 如何使大量现有功能在类的范围内可用?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:26:34 26 4
gpt4 key购买 nike

我需要将一个大型(100 个源文件)项目放入一个库中,通过将它们全部放入一个类对象中来删除数十个全局变量。

问题是现在需要成为此 class 成员的大约一千个函数这样他们就可以访问对象变量。

除了添加 MyClass:: 之外对于源文件中的每个函数定义,是否有一种方法可以欺骗并指示特定源文件中的所有函数都应该是 MyClass 的一部分范围?

最佳答案

将所有全局变量添加到命名空间

// MyGlobals.h
namespace MyGlobals
{
extern int g_i;
extern double g_d;
extern A g_A;
}

无论您想访问什么文件,请执行以下操作:

using namespace MyGlobals;

在头文件中。在这种(using namespace)方式中,您可以指示所有变量都应该可以访问,而无需对该文件使用范围解析 ::。 (即您可以简单地访问该文件中的 g_i 而不是 MyGlobals::g_i)。

另请注意,您必须在 .cpp 文件中定义所有全局变量:

// MyGlobals.cpp
#include "MyGlobals.h"

int MyGlobals::g_i;
double MyGlobals::g_d;
A MyGlobals::g_A;

关于c++ - 如何使大量现有功能在类的范围内可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6674376/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com