有一个类SomeClass包含一些操作此数据的数据和方法.它必须用一些参数创建,如:
SomeClass(int some_val, float another_val);
Run Code Online (Sandbox Code Playgroud)
比方说Manager,还有另一个类,它包含SomeClass并大量使用其方法.
那么,在性能(数据位置,缓存命中等)方面会更好,声明SomeClass作为成员的对象Manager并在Manager构造函数中使用成员初始化或将SomeClass的对象声明为unique_ptr?
class Manager
{
public:
Manager() : some(5, 3.0f) {}
private:
SomeClass some;
};
Run Code Online (Sandbox Code Playgroud)
要么
class Manager
{
public:
Manager();
private:
std::unique_ptr<SomeClass> some;
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个类似于React createClass函数的函数.它应该采用POJO并将其转换为构造函数,可以使用其他参数调用它.
这是代码:
function createClass(obj) {
return function(args = {}) {
Object.keys(obj).forEach(k => this[k] = obj[k]);
Object.keys(args).forEach(k => this[k] = args[k]);
Object.keys(this.actions).forEach(k => this.actions[k] = this.actions[k].bind(this));
console.log('binded to', this);
}
}
const MyClass = createClass({
actions: {
foo: function() {
console.log('actions.foo');
this.request();
}
},
foo: function() {
console.log('foo');
this.request();
}
});
const req1 = function() {
console.log('req1 called')
}
const req2 = function() {
console.log('req2 called')
}
const c1 = new MyClass({request: req1});
const c2 = new MyClass({request: req2}); …Run Code Online (Sandbox Code Playgroud)