gpt4 book ai didi

命名空间中的 C++ 全局变量

转载 作者:太空宇宙 更新时间:2023-11-04 16:05:19 25 4
gpt4 key购买 nike

<分区>

我看到了很多关于此的问题,但没有一个包含关于如何为这个特定用例编译代码的解释。我运行以下命令:g++ main.cpp c.cpp testobj.cpp -o main,但运行它会给我一个Segmentation fault (core dumped)。当我在 main.cppmain 方法中有 print 语句并删除所有 TestObj 代码时,它确实有效。

这是分配 C::test 常量的正确方法吗?

ma​​in.cpp:

#include "c.h"
#include "testobj.h"

TestObj testobj;

int main() {
return 0;
}

c.h:

#ifndef CONSTANTS
#define CONSTANTS

#include <string>

namespace C {
extern std::string test;
}
#endif

c.cpp:

#include "c.h"

namespace C {
std::string test = "test";
}

testobj.h:

#ifndef TESTOBJ
#define TESTOBJ

class TestObj {
public:
TestObj();
};

#endif

testobj.cpp:

#include "testobj.h"
#include <iostream>
#include "c.h"

TestObj::TestObj() {
std::cout << C::test << std::endl;
}

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