小编tyr*_*dis的帖子

在构造函数中做什么(不)

我想问你关于C++中构造函数的最佳实践.我不太确定我应该在构造函数中做什么,什么不能.

我应该只将它用于属性初始化,调用父构造函数等吗?或者我甚至可以将更复杂的函数放入其中,例如读取和解析配置数据,设置外部库aso

或者我应该为此编写特殊功能?RESP.init()/ cleanup()

什么是PRO和CON?

我想出了,例如,我可以在使用init()和时删除共享指针cleanup().我可以在堆栈上创建对象作为类属性,并在以后构建它时对其进行初始化.

如果我在构造函数中处理它,我需要在运行时实例化它.然后我需要一个指针.

我真的不知道该如何决定.

也许你可以帮帮我吗?

c++ oop constructor shared-ptr

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

使用fnmatch.filter按多个可能的文件扩展名筛选文件

给出以下python代码:

for root, dirs, files in os.walk(directory):
    for filename in fnmatch.filter(files, '*.png'):
        pass
Run Code Online (Sandbox Code Playgroud)

如何过滤多个分机?在这种特殊情况下,我希望得到所有以*.png,*.gif,*.jpg或*.jpeg结尾的文件.

现在我想出来了

for root, dirs, files in os.walk(directory):
    for extension in ['jpg', 'jpeg', 'gif', 'png']:
        for filename in fnmatch.filter(files, '*.' + extension):
            pass
Run Code Online (Sandbox Code Playgroud)

但我认为它不是很优雅和高效.

有人有更好的主意吗?

python filesystems

31
推荐指数
4
解决办法
4万
查看次数

"删除"Dockerfile中的VOLUME

我有一个Dockerfile扩展FROM声明了一个的图像VOLUME.有没有办法以这种方式覆盖VOLUME指令,它"删除" VOLUME

docker docker-compose

23
推荐指数
2
解决办法
5701
查看次数

使用Apache Ant删除没有子目录的目录中的所有文件

我需要一个Apache Ant目标,它删除目录中的所有文件但不触及子目录.

在我目前的方法中,我必须明确命名我想要跳过的子目录(atm只是"src /").

<delete>
   <fileset dir="${dist.dir}" excludes="src/" />
</delete>
Run Code Online (Sandbox Code Playgroud)

但我不喜欢它.这样,每当子目录结构发生变化时,我都必须修改目标.

有任何想法吗?

ant delete-file

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

使用接口/抽象基类是pythonic吗?

除了文档目的之外,我在它们中找不到太多的优势.如果我忘记实现我在ABC中定义的方法,Python会警告我,但由于我不通过它们的接口引用我的对象,我可能忘记在它们的接口中声明方法,我不会注意到它.通常的做法是使用ABC来实现类似接口的行为吗?

python abstract-class interface

12
推荐指数
1
解决办法
1990
查看次数

私有和特权方法与原型方法

在JavaScript中,我可以通过在构造函数中声明它们来创建私有和特权方法.通过这个我必须将它们移出对象的原型.然后我失去了继承和一些性能的可能性,因为每个对象都拥有它自己的那些方法的副本而不是访问一个原型对象.

所以我现在的问题是什么可能是一个小小的模式:利用私人和特权方法与否.我不喜欢晃来晃去,所以我想避免这种情况.那么该怎么办?

你有什么经历?

javascript oop prototypal-inheritance

10
推荐指数
1
解决办法
4400
查看次数

在带有或不带命名空间的<cstdint>中使用类型

在C++ 11中,我可以选择是否要使用带或不带命名空间std ::中定义的类型

至少我的编译器(g ++ 4.7)接受这两种变体.

我的问题是:使用cstdint中的typedef的推荐方法是什么.有没有命名空间?有什么优点或缺点?或者只是风格问题?

所以变种a):

#include <cstdint>
std::uint8_t n = 21;
Run Code Online (Sandbox Code Playgroud)

RESP:

#include <cstdint>
using std::uint8_t;
uint8_t n = 21;
Run Code Online (Sandbox Code Playgroud)

或变体b):

#include <cstdint>
uint8_t n = 21;
Run Code Online (Sandbox Code Playgroud)

c++ stl c++11

10
推荐指数
2
解决办法
2391
查看次数

虽然文件存在,但编译的C++程序在另一个系统上引发"无法打开共享对象文件"

我写了一个小程序,需要一些库,包括libboost_filesystem,libboost_program_options和libcurl.

我在我的家用机器上编译它并将二进制文件带到我的计算机上进行测试.但是当我尝试启动程序时,它会给出以下错误消息:

error while loading shared libraries:
libboost_filesystem.so.1.42.0: cannot
open shared object file
Run Code Online (Sandbox Code Playgroud)

但是当我搜索这个文件时,我发现它存在于:/usr/lib/libboost_filesystem.so.1.42.0

在编译/链接我的程序时我有什么问题吗?如果是,我需要做些什么才能使其在其他机器上运行?

c++ linux linker g++ libraries

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

如何让杰克逊反序列化到我自己的Array实现中

鉴于我自己的数组实现MyArray<T>,如何让Jackson知道它,以便它能够从JSON数组反序列化为MyArray<T>?到目前为止,我只得到这个例外:

com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of MyArray out of START_ARRAY token
Run Code Online (Sandbox Code Playgroud)

java json jackson json-deserialization

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

杰克逊无法在Android上加载JDK7类型

我在我的Android应用程序中使用Jackson 2.8.2来反序列化JSON.反序列化本身可行,但是,我可以在应用程序日志中看到以下警告:

Unable to load JDK7 types (annotations, java.nio.file.Path): no Java7 support added
Run Code Online (Sandbox Code Playgroud)

Proguard被禁用,sourceCompatibility设置为'1.7'.如何在构建中添加这些看似缺失的类型?

java android jackson java-7 kotlin

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