小编Som*_*bie的帖子

我应该在头文件中定义静态内联方法吗?

我已经了解了通常最好不要在头文件中定义任何内容,因为冗余副本是针对包含头文件的每个其他文件进行的.但是,在静态内联方法的情况下,似乎我必须在现场定义它(至少Visual Studio 2010不允许我这样做).因此,如果我在头文件中编写接口,我就无法定义类定义的静态内联方法或.cpp文件.

那么,我是否应该费心去使用静态内联方法呢?还有一个相关的问题:我是否应该在头文件中定义任何方法或变量(常量怎么样)?

无论如何,奇怪的是,这不是我的C++书籍中非常详细的内容.

编辑:我读过有关静态内联方法的类似问题,但似乎没有一个直接解决这个问题.

c++ static inline header-files

20
推荐指数
2
解决办法
2万
查看次数

使用堆或堆栈变量更好吗?

我前段时间和朋友讨论过.他是一位经验丰富的C++用户,我不是一位经验丰富的C++用户.他告诉我,我应该努力使用堆变量,即:

A* obj = new A("A");
Run Code Online (Sandbox Code Playgroud)

而不是:

A obj("A");
Run Code Online (Sandbox Code Playgroud)

除了使用指针很好和灵活的所有东西之外,他说最好把东西放在堆而不是堆栈中(关于堆栈的东西比堆小?).这是真的吗?如果是这样的话?

编辑:我写了一个错字,说我的朋友建议堆栈变量.他推荐堆变量.

Edit2:我知道有关生命的问题.让我们假设我已经适当地管理了这些变量的生命周期.(即关注的唯一标准是堆与堆栈存储,没有生命周期问题)

c++ variables heap stack

18
推荐指数
3
解决办法
9623
查看次数

在Maven中使用多个存储库

我有一个使用内部存储库和中央存储库的项目.有没有办法可以配置settings.xml,以便我可以使用两者而不是一个?当我添加

<mirrors>
    <mirror>
        <id>MY ID</id>
        <url>MY URL</url>
        <mirrorOf>*</mirrorOf>
    </mirror>
</mirrors>
Run Code Online (Sandbox Code Playgroud)

在settings.xml中,我可以查看自己的内部存储库,但它会覆盖中央存储库.

我确信这是Maven新手常见的问题.

maven

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

#pragma once和#include问题

我有一个循环引用的问题(即啊和Bh #including彼此),有些人建议我使用#pragma一次来防止这种情况.但是,此解决方案似乎仍然无效.

发生的事情是A类不再在Ah以外的任何文件中被识别(甚至不在A.cpp中),B类也是如此.

我来告诉你代码:

#pragma once
#include "B.h"

class A {
public: B* b;

};
Run Code Online (Sandbox Code Playgroud)

BH

#pragma once
#include "A.h"

class B {
    public: A* a;
};
Run Code Online (Sandbox Code Playgroud)

A.cpp

#include "stdafx.h"
#include "A.h"
#include "B.h"
Run Code Online (Sandbox Code Playgroud)

B.cppA.cpp相同

错误跟踪如下:

1> B.cpp 1> c:\ users\user\documents\visual studio 2010\projects\envmodel\test\bh(5):错误C2143:语法错误:缺少';' 在' '1>之前c:\ users\user\documents\visual studio 2010\projects\envmodel\test\bh(5):错误C4430:缺少类型说明符 - 假定为int.注意:C++不支持default-int 1> c:\ users\user\documents\visual studio 2010\projects\envmodel\test\bh(5):错误C4430:缺少类型说明符 - 假定为int.注意:C++不支持default-int 1> A.cpp 1> c:\ users\user\documents\visual studio 2010\projects\envmodel\test\bh(5):错误C2143:语法错误:缺少';' 在' '1> 之前 c:\ users\user\documents\visual studio 2010\projects\envmodel\test\bh(5):错误C4430:缺少类型说明符 - …

c++ pragma include

0
推荐指数
2
解决办法
6662
查看次数

使用Hibernate还是TomEE?

我有一个基于EJB的库,需要修改才能与Tomcat应用服务器兼容(即没有JaveEE).我在Hibernate上浏览了一下,感到非常困惑.

显然,有一个自然的Hibernate分支使用.cfg文件作为基础,符合Java SE,然后有一个基于JPA的Hibernate分支,它有条件地依赖于Java EE.我也觉得讨厌的一件事是显然不支持某些接口 - 例如CriteriaQuery.

所以我想,我必须去自然的Hibernate分支来实现摆脱Java EE的目标(考虑到差异,这很烦人).OTOH,也有TomEE可用,符合Tomcat,并且可能让我保持大部分代码不变

如果我能得到一些反馈,那就太好了.谢谢.

hibernate jpa java-ee apache-tomee

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