Visual Studio 2010 + Visual Assist C++:有自动化的方法创建getter和setter吗?

4

所以我正在创建一个简单的类,如下:

class file
{
public:
    boost::filesystem::path path;
    bool is_directory;
    boost::uintmax_t target_size;
    void get(boost::shared_ptr<boost::asio::ip::tcp::socket> socket, boost::shared_ptr<http_response> response);
    void set()
};

我发现,如果有一些自动化的程序可以为我创建一些变量的对话框并创建他们的getters和setters(而不是让我将它们设置为public或手动创建),那么我的代码API将会更好看,并且更容易实现线程安全。在VS2010或VA中是否有这样的命令来完成这些麻烦的工作呢?

2个回答

4

选择类变量,然后从上下文菜单中选择重构(VA X)-> 封装字段。您可以通过修改重构封装字段片段来自定义格式。您可以在此处找到更多有关自定义片段的信息

我个人使用的片段会生成带有Doxygen文档存根的类似Java的访问器:

//! \return
$end$$SymbolType$ get$GeneratedPropertyName$() const
{ 
    return $SymbolName$;
}
//! \param $SymbolName$
void set$GeneratedPropertyName$($SymbolType$ $SymbolName$) 
{ 
    this->$SymbolName$ = $SymbolName$; 
}

当然它并不完美,有时你仍需要修改结果(调整constness,指针,引用),但是它能节省很多时间。

或者你也可以创建自己的自定义代码片段,并从上下文菜单中运行它 Surround with (VA X),但此时你将无法访问$Symbol*$变量。


3

我不知道Visual Studio 2010,但是在Visual Assist中,您可以使用命令'封装字段'。如果我没记错,在重构这个模板时可以像其他模板一样进行修改。如果您需要分离方法以创建线程安全和非线程安全的访问器,您可能可以编写一个单独的模板来生成适当的代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接