Tag: 实例化

我如何强制C ++模板的特定实例实例化?

看标题。 我有一个模板。 我想强制一个模板的特定实例来实例化。 我该怎么做呢? 更具体地说,你可以强制抽象模板类来实例化吗? 我可以详细说明,因为我有同样的问题。 在我的情况下,我正在build立一个库,一些模板实现很大,包括很多的东西,但只生成几个types。 我想在库中编译它们,并导出所有的方法,但不包含任何地方的代docker。 即: template<class T> OS_EXPORT_DECL class MyTmpl { T *item1; public: inline T *simpleGetT() { return(item1); } /* small inline code in here */ } T *doSomeReallyBigMergeStuff(T *b); // note only declaration here }; // *** implementation source file only seen inside library template<class T> MyTmpl<T>::doSomeReallyBigMergeStuff(T *b) { […]

如何在Rails中实例化名称string中的类?

我们如何在Ruby-on-Rails中从它的名字string中实例化类? 例如,我们在数据库中以“ClassName”或“my_super_class_name”的格式命名。 我们如何从中创build对象? 解: 正在找我自己,但没有find,所以在这里。 Ruby-on-Rails API方法 name = "ClassName" instance = name.constantize.new 它甚至可以不格式化,我们可以用户string方法.classify name = "my_super_class" instance = name.classify.constantize.new 当然也许这不是'Rails的方式',但它解决了它的目的。

{}在C#中创build新对象时的行为如何()

我只注意到,使用{}而不是()在构造对象时会得到相同的结果。 class Customer { public string name; public string ID {get; set;} } static void Main() { Customer c1= new Customer{}; //Is this a constructor? Customer c2= new Customer(); //what is the concept behind the ability to assign values for properties //and fields inside the {} and is not allowable to do it inside () […]

python是否具有与Java Class.forName()相同的function?

我有需要采取一个string参数,并创build在Python中的string中指定类的对象。 在Java中,我会使用Class.forName().newInstance() 。 Python中是否有相当的东西? 感谢您的回应。 要回答那些想知道我在做什么的人:我想使用命令行参数作为类名,并实例化它。 我实际上是用Jython进行编程并实例化Java类,因此问题的Java性。 getattr()很好。 非常感谢。

C ++对象实例化

我是一个试图理解C ++的C程序员。 很多教程都演示了如何使用代码片段实现对象: Dog* sparky = new Dog(); 这意味着稍后你会做: delete sparky; 这是有道理的。 现在,在不需要dynamic内存分配的情况下,有没有什么理由使用上面的代替 Dog sparky; 让一旦闪烁超出范围调用析构函数? 谢谢!

从一个string创build一个类的实例

有没有一种方法来创build一个类的实例,基于这个事实,我知道运行时类的名称。 基本上我会有一个string类的名称。

为什么比list()更快?

我最近比较了[]和list()的处理速度,并惊讶地发现[]比list()运行速度快三倍以上。 我用{}和dict()进行了相同的testing,结果几乎相同: []和{}都花费了大约0.128秒/百万个周期,而list()和dict()花费了大约0.428秒/百万个周期。 为什么是这样? list() , dict() , tuple() , str() )的时候, []和{} (也许是()和'' )会立即传回一些空的库存文字的副本。完全去创造一个对象,不pipe他们是否真的有元素? 我不知道这两种方法有什么不同,但我很想知道。 我无法在文档或SO上find答案,而search空括号的结果却比我预期的更成问题。 我通过调用timeit.timeit("[]")和timeit.timeit("list()") , timeit.timeit("{}")和timeit.timeit("dict()")比较列表和字典,分别。 我正在运行Python 2.7.9。 我最近发现“ 为什么如果True比1更慢? ”,它比较了if True和if 1的性能,似乎涉及类似的文字与全局情景; 也许这也值得考虑。

使用reflection在C#中创build没有默认构造函数的types实例

以下面的课程为例: class Sometype { int someValue; public Sometype(int someValue) { this.someValue = someValue; } } 然后我想使用reflection来创build这种types的实例: Type t = typeof(Sometype); object o = Activator.CreateInstance(t); 通常这是可行的,但是因为SomeType没有定义一个无参数的构造函数,所以对Activator.CreateInstance的调用会抛出一个types为MissingMethodException的exception,消息是“ 没有为这个对象定义无参数的构造函数 ” 。是否还有另一种方法来创build这种types的实例? 将无参数的构造函数添加到我的所有类中会有点儿麻烦。

为什么是Class.newInstance()“邪恶”?

Ryan Delucchi 在这里向Tom Hawtin的回答#3发表了评论: 为什么是Class.newInstance()“邪恶”? 这在响应代码示例: // Avoid Class.newInstance, for it is evil. Constructor<? extends Runnable> ctor = runClass.getConstructor(); Runnable doRun = ctor.newInstance(); 那么,为什么是邪恶呢?

实例初始值设定项与构造函数有什么不同?

换句话说,你为什么需要一个实例初始值设定项? 你在编写一个实例初始化程序的时候有什么不同或者有什么优势?