我见过人们在类中使用尾随下划线作为成员变量,例如在着名的C++ FAQ Lite中.
我认为它的目的不是将变量标记为成员,而是"m_"的用途.它的实际目的是使一个名为field的访问器方法成为可能,如下所示:
class Foo {
public:
bar the_bar() { return the_bar_; }
private:
bar the_bar_;
}
Run Code Online (Sandbox Code Playgroud)
访问器省略了"get_"部分在STL和boost中是常见的,我正在尝试尽可能接近这些开发编码风格,但我不能真正看到它们使用下划线技巧.我无法在STL或boost中找到一个只返回私有变量的访问器.
我有几个问题我希望你能回答:
我正在进行跨平台开发,我想为Linux构建一个漂亮的,自包含的(!)包.我知道这不是通常的方式,但应用程序需要一个地方的所有数据,所以我将它安装到/ opt,就像许多其他专有软件包一样.我最终将提供deb和rpm包,但现在只有.tar.gz.用户应该在某处提取它,它应该工作.我宁愿没有安装程序.
首先是我的问题,然后是细节:
现在来看一些细节:这是我的项目(为此我称之为foo)布局:
现在在包中,将有两个额外的元素:
libs将包含项目所需的所有共享库,foo.sh是一个将LD_LIBRARY_PATH设置为包含libs的脚本.因此,用户将执行foo.sh并且程序应该启动.
我有一个shell脚本,它按以下步骤打包软件:
你觉得这怎么样?这种方法存在一些问题:
你怎么做呢?
编辑: 刚出现的另一个问题:您如何确定您的软件所依赖的库?我做了一个ldd foo,但是有很多.我看了一下WorldOfGoo包的外观,它们只发送了很少的库.如何假设用户系统中存在哪个库,哪个库不存在?只需将所有目标分布安装到虚拟matine中,看看需要什么?