小编Tri*_*tan的帖子

简单问题:使用状态,C++传递对象

我不是C++专家,但仍然没有很好的直观把握.我认为这是一个简单的问题.我无法将具有状态的对象传递给其他对象.我宁愿避免传递指针或引用,因为一旦设置了初始化对象,我就会在紧密循环中调用它们数百万次.我想我会像Command模式一样.这是问题的核心.我的标题代码如下:

class ObjectWithState {
public:
  ObjectWithState(int state) { // This constructor creates the problem!
    state_ = state;       // everyting works with no constructor.
  }
private:
  int state_;
};

class TakesObject {
public:
  TakesObject(ObjectWithState obj) {
    obj_ = obj;
  }
private:
  ObjectWithState obj_;
};
Run Code Online (Sandbox Code Playgroud)

我的main()功能如下:

int main () {
  ObjectWithState some_object(1);
  TakesObject takes_object(some_object);
  return 0
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误(g ++):

test.h: In constructor 'TakesObject::TakesObject(ObjectWithState)':
test.h:14: error: no matching function for call to 'ObjectWithState::ObjectWithState()'
test.h:5: note: candidates are: ObjectWithState::ObjectWithState(int)
test.h:3: note:                 ObjectWithState::ObjectWithState(const …
Run Code Online (Sandbox Code Playgroud)

c++

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

.NET中包含超过2 ^ 31个键的Big Arrays选项

是否有支持超过2 ^ 31键的阵列的内置选项.这将生成System.Int64类型的键而不是System.Int.虽然2 ^ 31是相当数量的,但是有越来越多的应用程序需要更多的密钥.例如,人类基因组中有超过30亿个碱基对.任何简单的选择?

.net

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

为什么python隐式行继续上一段时间?

是否有任何原因Python在句点之后(或之前)不允许隐式行延续?那是

data.where(lambda d: e.name == 'Obama').
    count()


data.where(lambda d: e.name == 'Obama')
    .count()
Run Code Online (Sandbox Code Playgroud)

这与Python的某些功能有冲突吗?随着方法链API的兴起,这似乎是一个很好的功能.

python

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

Redis pub/sub在订阅中添加额外频道

是否可以向Redis连接添加其他订阅?我有一个监听线程,但似乎不受新的SUBSCRIBE命令的影响.

如果这是预期的行为,如果用户为他们的兴趣或加入聊天室添加股票代码提要,应该使用的模式是什么?

我想实现一个类似于的Python类:

import threading
import redis

class RedisPubSub(object):
    def __init__(self):
        self._redis_pub = redis.Redis(host='localhost', port=6379, db=0)        
        self._redis_sub = redis.Redis(host='localhost', port=6379, db=0)        
        self._sub_thread = threading.Thread(target=self._listen)
        self._sub_thread.setDaemon(True)
        self._sub_thread.start()

    def publish(self, channel, message):
        self._redis_pub.publish(channel, message)

    def subscribe(self, channel):
        self._redis_sub.subscribe(channel)

    def _listen(self):
        for message in self._redis_sub.listen():
            print message
Run Code Online (Sandbox Code Playgroud)

python redis

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

标签 统计

python ×2

.net ×1

c++ ×1

redis ×1