小编P.K*_*.K.的帖子

将枚举传递给另一个文件?C++

第一次在这里发帖,我是C++编程的初学者,学习它主要是因为我想知道它,因为它总是很有趣,因为它是如何工作的等等.
我正在尝试使用SFML 2.0制作一个简单的游戏,我的问题是:
我有一个枚举,例如:

    enum GameState
    {
        Menu,
        Battle,
        Map,
        SubMenu,
        Typing
    };
Run Code Online (Sandbox Code Playgroud)

所以,我想制作一个这样的变量,使用

    GameState State = Menu;
Run Code Online (Sandbox Code Playgroud)

然后,将其传递给另一个文件

    extern GameState State;
Run Code Online (Sandbox Code Playgroud)

但我得到错误

    error: 'GameState' does not name a type
Run Code Online (Sandbox Code Playgroud)

如何将枚举传递给另一个文件?我试图通过将它作为main.cpp中的全局变量,然后将其包含在另一个文件的头中来实现.

c++

4
推荐指数
1
解决办法
8739
查看次数

是否可以在char中返回"怪异"字符?

我想知道是否可能返回"奇怪"的字符,或者更确切地说是对语言很重要的字符
.例如:\; '
我想知道,因为我需要通过一个检查文本键的unicode值的函数返回它们,然后通过它的数字返回字符,我也需要它们.
我得到一个356 |错误:缺少终止'字符
行356看起来如下

return '\';
Run Code Online (Sandbox Code Playgroud)

想法?

c++ char

2
推荐指数
1
解决办法
295
查看次数

线程占用内存

我有一个线程(升压::线程)的正确使用的问题
我想有X线程在同一时间,像这样运行相同的功能

while( true )
    server.run();
Run Code Online (Sandbox Code Playgroud)

这是我目前编程的方式,这是运行功能

void server::run()
{
    std::vector<boost::thread*> threads;
    for(std::size_t i = 0; i < threadPool; ++i)
    {
        threads.push_back( new boost::thread( boost::bind(&seed::server::pollEvent,this) ) );
    }

    for( auto & x : threads )
        x->join();

    for( auto & x : threads )
        x->detach();

    for( auto & x : threads )
        delete x;
}
Run Code Online (Sandbox Code Playgroud)

但是,这种不断用起来比较多的RAM,在开始大约20MB的和去成无限大,我的问题是,什么是这个正确的方法呢?

我正在做的事情的最小例子

使用SFML的线程时不会发生此问题.(CPU使用率略高,但不会占用每个线程的ram,它们被正确清除)

c++ boost boost-thread

2
推荐指数
1
解决办法
599
查看次数

是否有可能指向任何类型的变量?

我想知道是否有可能(以及如果,如何)创建一个X值指针
现在,让我说我知道哪些类型可以在这个指针中分配.

例如,一个X值的指针(当然可以随意更改此值的名称),它可以指向string,bool和自定义类的变量

c++ pointers

0
推荐指数
1
解决办法
166
查看次数

标签 统计

c++ ×4

boost ×1

boost-thread ×1

char ×1

pointers ×1