Enabled = tr-6ren">
gpt4 book ai didi

c++ - 用 "set"函数自动替换赋值运算符

转载 作者:IT王子 更新时间:2023-10-29 01:14:35 25 4
gpt4 key购买 nike

我正在将使用 Embarcadero RAD Studio 构建的 C++ Windows 项目移植到使用 Qt 的 Linux。所以我的代码中有很多这样的语句:

Menu->Enabled = true;

对于 Qt 它应该像这样转换:

Menu->setEnabled(true);

所以现在我在评论代码上浪费了很多时间。有没有办法自动进行这种替换?

最佳答案

如果这是一些次要的移植细节,这会妨碍处理更重要的问题,在这个移植项目中,您还可以考虑将此重构推迟到以后,使用如下方法:

class Menu {

public:

class punt_enabled {
Menu *me;
public:
punt_enabled(Menu *meArg);
Menu &operator=(bool flag);
};

punt_enabled Enabled;

// ...

};

// ...

Menu::Menu(...) : Enabled(this) //...

Menu::punt_enabled::punt_enabled(Menu *meArg) : me(meArg) {}

Menu &Menu::punt_enabled(bool flag) { me->setEnabled(flag); return *me; }

// ...

这将使编译器捏合命中并在运行中进行此替换,现在,您可以返回并使用 grep+sed 或 perl 完成工作,以处理批量替换。

附言punt_enabled 需要由所有构造函数初始化,当然包括复制和移动构造函数。

关于c++ - 用 "set"函数自动替换赋值运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25565093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com