我一直在查看my.class.js的源代码,以了解是什么让它在Firefox上如此之快.这是用于创建类的代码片段:
my.Class = function () {
var len = arguments.length;
var body = arguments[len - 1];
var SuperClass = len > 1 ? arguments[0] : null;
var hasImplementClasses = len > 2;
var Class, SuperClassEmpty;
if (body.constructor === Object) {
Class = function () {};
} else {
Class = body.constructor;
delete body.constructor;
}
if (SuperClass) {
SuperClassEmpty = function() {};
SuperClassEmpty.prototype = SuperClass.prototype;
Class.prototype = new SuperClassEmpty();
Class.prototype.constructor = Class;
Class.Super = SuperClass;
extend(Class, SuperClass, …Run Code Online (Sandbox Code Playgroud) 好吧,正如标题所说这是一个奇怪的问题.我想创建一个名为int的int,当然如果我写的话;
int int;
Run Code Online (Sandbox Code Playgroud)
java(eclipse)给出了错误.所以我一直在想是否有可能创造这样的东西?如果你问我为什么坚持这个,我已经为强度创造了str,为了敏捷而创造了agi,但是无法创建智能int.那么我应该用另一种方式描述它还是有一种简单的方法呢?
这个语法是什么意思?
date aaa(2011,7,1);
Run Code Online (Sandbox Code Playgroud)
而不是aaa我可以使用我想要的任何东西(例如bbb或ccc).看起来我创建了一个名为aaa属于该类的新对象date.但我们知道我需要使用new关键字来创建一个新对象.
我需要class在一个线程应用程序中使用它,所以在堆栈上实例化它显然是一个问题,有没有办法强制new在实例化类时使用?
我已经将构造函数private和new运算符公之于众
public:
void *operator new(size_t);
private:
SomeClass(void);
SomeClass(SomeType value);
.
.
.
Run Code Online (Sandbox Code Playgroud)
但正如我预期的那样使用
SomeClass *heapInstance = new SomeClass(value);
Run Code Online (Sandbox Code Playgroud)
编译器告诉我构造函数是私有的.
问题:
注意:我已经使用class了这个地方,现在我需要修复我的代码,即我需要编译器来防止编译所以我不需要手动搜索每个事件,我不是很擅长c ++我只是不得不使用它,因为我需要做一个GUI跨平台应用程序,并选择Qt了几个与此无关的原因.