小编Pau*_*nta的帖子

示例性2D游戏引擎

有人在这里能够指出一个简单而精心设计的C++ 2D开源游戏引擎吗?这种类型不太重要,我希望通过实例来学习.我不想要任何特别复杂的东西,因为我对学习一般概念感兴趣,而不是深入了解引擎实现的细节.

c++ game-engine

6
推荐指数
1
解决办法
4968
查看次数

C++:实现copy-constr定义的接口

接口类是否有任何方法可以强制执行复制构造函数的定义,也可能是其他构造函数的定义?在我的例子中,我有一个IResource纯抽象类,我希望所有实现此接口的类都定义一个copy-constr,一个用于从文件加载的构造函数,以及一个用于从内存加载的构造函数.

c++ oop inheritance interface

6
推荐指数
1
解决办法
1013
查看次数

Doxygen:记录重载函数

如果我的文档与我的代码分开,我如何帮助Doxygen区分重载函数(在\fn现场使用什么)?单个函数将记录如下:

void func() {
}

/**
    \fn func
    \details Description here.
  */
Run Code Online (Sandbox Code Playgroud)

如果我有两个函数叫做func怎么办?

void func() {
}

void func(int i) {
}

/**
    \fn [What goes here?]
    \details Description here.
  */
Run Code Online (Sandbox Code Playgroud)

documentation doxygen

6
推荐指数
2
解决办法
8277
查看次数

复制地图有多贵?

map<EntityState, boost::weak_ptr<Animation>>EntityRepresentation班上有一个.我想要为表示创建一个Builder类,但我必须考虑复制地图的成本.

EntityState复制很便宜,因为它只是一组静态函数; boost::weak_ptr复制也很便宜.整个地图怎么样?

c++ performance

6
推荐指数
1
解决办法
983
查看次数

运行一个简单的shell命令

当你只想运行一个简单的shell命令时,最好使用什么WinAPI函数hg > test.txt

winapi

6
推荐指数
1
解决办法
9068
查看次数

关于服务定位器模式

服务定位器似乎是一个非常有用的概念,我想在我的应用程序中实现它.但是,我有一些关于如何实现它以及如何与其他编程范例一起使用的问题.

  1. SL应该管理它存储的服务吗?也就是说,当SL被破坏时,它是否也会破坏服务本身,还是应该将其留给注册服务的人?

  2. 那么依赖注入呢?既然我有一个SL,那么将SL作为参数传递还是应该全局访问?毕竟,DI的整个目的的大部分也被SL覆盖了,我不想用一个更多的参数来混淆我的很多功能.

c++ dependency-injection service-locator

6
推荐指数
1
解决办法
3287
查看次数

由于缺乏反射,在C++中是一个不可避免的大开关块

假设我有一个类的层次结构:

class Shape {
};

class Circle : public Shape {
}

class Square : public Shape {
}

... hundreds of other shapes continue on...
Run Code Online (Sandbox Code Playgroud)

当给定形状类的名称作为字符串时,我需要实例化该类的对象.

在java中,我可以做这样的事情(伪代码!)

Shape createShape(String name) {
    return new Class.forName(name);
}
Run Code Online (Sandbox Code Playgroud)

但是在C++中,我必须这样做:(伪代码!)

Shape * createShape(const string &name) {
    if (name.compare("Circle") == 0) {  
        return new Circle();
    }
    else if (name.compare("Square") == 0) {
        return new Square();
    }
    else if ... //hundreds of else if continues, one for each shape
}
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法在C++中处理这样的情况?

c++ oop factory

6
推荐指数
1
解决办法
620
查看次数

将工具栏布局方向设置为RTL,使用`supportsRtl ="false"`

我有一个特殊的情况,我无法找到解决方案.我试图强制一个视图在RTL中布局,但其中一个限制是supportsRtl必须false在清单中.

<!-- AndroidManifest.xml -->
<application android:supportsRtl="false">

<!-- layout/activity.xml -->
<android.support.v7.widget.Toolbar
    android:layoutDirection="rtl"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,android:layoutDirectionView#setLayoutDirection(int),除非被忽略supportsRtl="true".如果没有我自己的Toolbar,还有什么其他选择来处理这个?

layout android right-to-left android-toolbar

6
推荐指数
0
解决办法
1384
查看次数

如果`char`转换为`int`,为什么``%c'`存在于`printf`中?

在C你有"%c""%f"的格式标志printf-和scanf式的功能.这两个功能的使用可变长度参数...,它总是转换floatsdoublescharsints.

我的问题是,如果这种转换发生,为什么做独立的标志charfloat存在吗?为什么不只使用相同的标志intdouble

相关问题:
为什么scanf()需要"%lf"用于双打,当printf()只用"%f"时可以吗?

c printf variadic-functions

5
推荐指数
1
解决办法
1万
查看次数

具有宏的类型安全的通用容器

我正在尝试使用宏在C中创建一个类型安全的通用链表.它应该与模板在C++中的工作方式类似.例如,

LIST(int) *list = LIST_CREATE(int);
Run Code Online (Sandbox Code Playgroud)

我的第一次尝试是#define LIST(TYPE)(我上面使用的宏)定义一个struct _List_##TYPE {...}.但是,这不起作用,因为每次我声明一个新列表时都会重新定义结构.我通过这样做解决了这个问题:

/* You would first have to use this macro, which will define
   the `struct _List_##TYPE`...                               */
DEFINE_LIST(int);

int main(void)
{
    /* ... And this macro would just be an alias for the struct, it
       wouldn't actually define it.                                  */
    LIST(int) *list = LIST_CREATE(int);
    return 0;
}

/* This is how the macros look like */

#define DEFINE_LIST(TYPE)    \
    struct _List_##TYPE      \
    {                        \
        ...                  \
    }

#define …
Run Code Online (Sandbox Code Playgroud)

c macros containers generic-collections

5
推荐指数
2
解决办法
3141
查看次数