在C++中动态分配变量类型
Dynamically assign variable type in C++
我想创建一个可以根据情况使用priority_queue或常规队列的算法。因此,应将相同的变量分配给队列或优先级队列,但代码的其余部分将是相同的。在Java中,这是可能的,因为继承
Queue<Customer> customerPriorityQueue = new PriorityQueue<>(capacity, idComparator);
C++有这样的东西吗?
是的,您需要根据要使用的容器类型使类模板化,例如:
template < typename Queue >
class Test
{
Queue queue;
public:
void push( int i )
{
queue.push( i );
}
};
如果你想要一个完全 Java 风格的多态容器基类:
template < typename T >
class Queue
{
public:
virtual void push( const T& t ) = 0;
};
template < typename Q >
class QueueImpl : public Queue< typename Q::value_type >
{
public:
typedef typename Q::value_type value_type;
virtual void push( const value_type& t ) override
{
q.push( t );
}
private:
Q q;
};
std::unique_ptr< Queue< int > > queue = std::make_unique< QueueImpl< std::queue< int > > >();
queue->push( 1 );
相关文章:
- c++类声明时,相同的例程,不同的成员变量类型
- 如何为 c++ 的不同变量类型的结构元素创建动态数组?
- 创建类似于布尔值的变量类型
- std::cin 从控制台获取两种不同的变量类型,'storing'以后使用第二种类型?
- 如何使用变量模板比较 C++ 17 中的变量类型?
- 是否有一个库可以检查C++中的变量类型?
- 与不同变量类型相比,用于变量的 Clang AST 匹配器
- 继承类中的 C++ 成员变量类型重写
- 如何在编译器时动态获取元组内的变量类型C++?
- 在C++中动态分配变量类型
- 用于浮点值的最佳变量类型
- 定义变量类型
- 错误 - 变量类型 "X" 是一个抽象类 - c++
- 在函数 (c++) 中分配变量类型和大小数组
- 具有容器变量类型的类模板
- 获取变量类型名称
- 沿枚举 c++ 返回变量类型
- 是否可以通过模板指定抽象类变量类型
- 什么是变量类型位(32)
- C++ 在知道变量类型之前使用自动定义的变量