EI'm正在做一個數據結構類的項目,它必須實現不同類型的結構。
如陣列,鏈接,雙向鏈接,循環等......
這些結構中的每一個都使用類型,堆棧,隊列或列表。遺產選定功能
例子:
VectorStructure.h
template<typename T>
class VectorStructure{
public:
int addOnPosition(T element, int pos);
int addOnBeginning(T element);
int add(T element);
int addElementOrdered(T element);
T removeFromPos(int pos);
T removeFromBeginning();
T remove();
T removeElement(T element);
}
這些類型的每一個實現包含其他完全一樣的代碼。堆棧:是一個LIFO結構,只使用方法:add(T元素)和remove();隊列:是一個FIFO結構,只使用方法:add(T元素)和removeFromBeginning();
列表:是一個動態數組,可以使用任何這些方法和一些額外的。
我的想法是: 在基類上實現所有這些函數,並使這些類型僅使用基類所需的方法。 我以爲我可以使用繼承,但隨後堆棧可以訪問從基類不允許的函數,因爲它的「孩子」 也認爲我可以使用抽象類,但是,爲了編譯我應該實現所有方法包含在摘要類。
類型(它們只是例子,還有一些其他的方法是相同的所有類型):
List.h
Stack.h
template<typename T>
class Stack{
public:
int add(T element);
T remove();
隊列.h
template<typename T>
class Queue{
public:
int add(T element);
T removeFromBeginning();
是否有任何方法來實現這個想法?
參見:http://stackoverflow.com/questions/3873802/what-are-containers-adapters-c基本上,有序列容器(載體,雙端隊列,列表,等等)和適配器(堆棧,隊列等)。例如,堆棧使用任何序列容器來提供LIFO接口等。 –
是的,我認爲這可以工作!在這種情況下,變量應該被實例化,每一個在它自己的類還是在basecontainer上? –
ok nvm,我認爲這是我所需要的 非常感謝你! –