c++ - 这感觉有点反模式,有没有更好的方法(C++ - 分配给引用)

标签 c++

代码:

static Layout::Pad& chooseFirst(Layout::Pad& A, Layout::Pad& B, bool swap) {
    if(swap) { return B; } else { return A; }
}

static Layout::Pad& chooseSecond(Layout::Pad& A, Layout::Pad& B, bool swap) {
    if(swap) { return A; } else { return B; }
}

void FlowchartDrawArea::addEdge(Layout::Pad& A, Layout::Pad& B) {
    bool swap = false;
    if(A.getPadDir() == Layout::PAD_DIRECTION::IN) {
        swap = true;
    }
    Layout::Pad& source = chooseFirst(A,B,swap);
    Layout::Pad& dest = chooseSecond(A,B,swap);

    flowchart.addEdge(new Edge(source,dest));
}

我不知道还能说什么,静态函数感觉不像是解决方案,但这就是问题所在。

最佳答案

Layout::Pad& source = swap ? B : A;
Layout::Pad& dest = swap ? A : B;

flowchart.addEdge(new Edge(source,dest));

关于c++ - 这感觉有点反模式,有没有更好的方法(C++ - 分配给引用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24995830/

相关文章:

c++ - 跟踪专用模板对象的枚举成员值

c++ - 寻找高分辨率计时器

c++ - srand(time(0)) 和 rand() 导致堆栈溢出错误

c++ - Winsock C++ 代理

c++ - 快速排序最坏情况的提示

c++ - QLineEdit:将光标位置设置为焦点开始

c++ - 如何使用 C++ 将 UTF-16 转换为 UTF-8?

c++ - MSVC 16.8.4 中 std::this_thread::sleep 的大量开销?

c++ - 在 C++ 中,我希望两个类可以相互访问

c++ - C++11 的编译器标志 - 找不到计时文件