我有以下C++类:
class Eamorr { public: redispp::Connection conn; Eamorr(string& home, string& uuid) { //redispp::Connection conn("127.0.0.1", "6379", "password", false); //this works, but is out of scope in put()... conn=new redispp::Connection("127.0.0.1", "6379", "password", false); //this doesn't work ;( } put(){ conn.set("hello", "world"); } ... }
如您所见,我希望conn
在构造函数中初始化并在put()
方法中可用.
我怎样才能做到这一点?
提前谢谢了,
这是member-initialization-list的用途:
Eamorr(string& home, string& uuid) : conn("127.0.0.1", "6379", "password", false) { //constructor body! }
后面的语法:
(包括这个)构成了member-initiazation-list.您可以在此初始化成员,每个成员用逗号分隔.
这是一个详细的例子:
struct A { int n; std::string s; B *pB; A() : n(100), s("some string"), pB(new B(n, s)) { //ctor-body! } };
有关更多信息,请参阅以
为什么我更喜欢使用成员初始化列表?
我的构造函数应该使用"初始化列表"还是"赋值"?(常问问题)