gpt4 book ai didi

c++ - 取消定义已定义的头文件/C++

转载 作者:行者123 更新时间:2023-11-27 23:59:07 26 4
gpt4 key购买 nike

是否可以从另一个头文件取消定义一个已经定义的头文件?

我正在处理不同的类,我需要取消对某个类的定义,以便将私有(private)部分更改为公共(public)部分。

我知道将私有(private)类(class)改为公共(public)类(class)并不常见,但这确实可以帮助我。

#undef "player.h"
#define private public
#include "player.h"
#undef private

最佳答案

首先,您无法使用任何预处理器技术从提交给编译器的代码中删除语句。

其次,C++ 不允许您将#define private 作为public。 C++11 17.6.4.3.1 宏名[macro.names]

A translation unit shall not #define or #undef names lexically identical to keywords.

所以不要这样做。

在这种情况下你唯一能做的就是重新输入类。

关于c++ - 取消定义已定义的头文件/C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40461250/

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