c++ - C++中对象的继承和双端队列

标签 c++ inheritance deque

我有多个控件,如下所示:

deque<wxTextCtrl*> dequeEdit;
deque<wxStaticText*> dequeText;
deque<wxComboBox*> dequeCombo;

所有这些控件都继承自wxWindow,wxWindow具有Show方法。我想一次显示(或隐藏)整个双端队列,而不需要每个双端队列使用多种方法。怎么可能做到呢?

我正在考虑为每个控件制作wxWindow的双端队列,这样我就可以编写方法

ShowDeque(deque<wxWindow*> deque)

所以展示会很容易,但另一方面,如果我想与例如合作组合框,我必须将其输入回 wxComboBox。 还有其他可能性吗?谢谢。

最佳答案

用途:

for_each(dequeEdit.begin(), dequeEdit.end(), mem_fun(&wxWindow::Show));

与任何其他双端队列相同。

或者封装在一个函数中:

template <class Deque>
void showAll(const Deque& dequeObj)
{
   using namespace std;
   for_each(dequeObj.begin(), dequeObj.end(), mem_fun(&wxWindow::Show));
}

showAll(dequeEdit);
  1. std::for_each: http://en.cppreference.com/w/cpp/algorithm/for_each
  2. std::mem_fun: http://en.cppreference.com/w/cpp/utility/functional/mem_fn

关于c++ - C++中对象的继承和双端队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12673253/

相关文章:

c++ - 是否有用于 C++ 的 Lua 表迭代器包装器?

c# - 在 C# 程序中使用 C++ 常量

c++ - Qt 无法从继承类访问 *ui 指针

java - 子类 toString 打印 null? (对不同的toStrings使用相同的参数)

c - 为什么我的 C 循环双端队列程序无法退出打印功能?

c++ - 双冒号前的 clang 格式中断

c++ - IPC 共享内存与 posix 共享内存

c++ - C++ 中未使用的友元类

arrays - 给定数组 A 和数字 K 创建数组 B,其中 B[i] = min(A[i], A[i+1].. A[i + K - 1])

c++ - 随机访问迭代器和双端队列