小编sai*_*ler的帖子

unique_ptr vs class instance as member variable

有一个类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)

c++ performance

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

奇怪的`绑定'行为

我正在尝试创建一个类似于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)

javascript

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

标签 统计

c++ ×1

javascript ×1

performance ×1