No. C does not support classes at all, so there is no way to create a Base class in the first place.
If you are talking about C++ or C# instead (and if you are, then tagging your question appropriately helps a lot) then yes, you can.
One way I do things is to have the Base class contain a static collection of it's instances (C# code here):
public class Base
{
private static List<Base> all = new List<Base>();
private Base()
{
all.Add(this);
}
public static Base Create()
{
return new Base();
}
public static Base[] GetAll()
{
return all.ToArray();
}
}
It would be easy to add the Reset and ResetAll methods to that:
public virtual void Reset()
{
...
}
public static void ResetAll()
{
foreach (Base b in all)
{
b.Reset();
}
}
You can do similar things in C++.