我必須上課,A
和B
和B
公開繼承A
成員。繼承成員靜態
class A {
public:
int a;
};
class B : A {
};
有沒有辦法讓所有的繼承成員從B
下A
靜態的,或者通過創建它們在A
static
是唯一的出路?
語境:
我建立一個內存管理器,而這個經理會通過控制特定類的實例使用的內存。
我有類似:
template <class T>
class Memory {
public:
operator new;
operator delete;
private:
memory_pool_for<T>;
};
class Data : Memory<Data> {
};
所以,當我做這樣的事情:
new Data;
delete Data;
的操作會從函數調用Memory
定義,這將分配/釋放一些內存空間。
分配/釋放應Data
實例之間靜態的,而且我想,以確保沒有額外的字節將被添加到Data
每個實例,由於從Memory
繼承。這就是爲什麼我想到static
'繼承。
我不確定這是否是做我所做的最好的方法,但這是迄今爲止我能想到的最優雅的方法。
簡答:沒有。你需要*實例*內部的靜態A. – WhozCraig
在C++中沒有這樣的功能,我看不到一個必然需要它的具體用例。你爲什麼認爲你需要它? –
如果您提供* real *用例,我們可能會想到更好的解決方案。現在,它確實不清楚你可能需要它。 –