I have these classes:
class FS{
static char mount(Partition* p)
{return myImpl->mount(p);}
/*...*/
KernelFS* myImpl;
};
class KernelFS{
char mount(Partition* p){
/*...*/
while(available[i]) i++;
}
/*...*/
static bool available[26];
};
Main program only uses static functions from FS, e.g:
void main(){
Partition* p=/*...*/;
FS::mount(p);
/*...*/
}
When FS::mount(p) is called, it calls myImpl->mount(p) (which is a function from KernelFS class). And here's the problem. When it comes to
while(available[i]) i++;
...it breaks! I think the problem is that I haven't initialized the array available[26], and I have no idea how to do that... What else can be the problem? Please help.
Btw, main() never creates FS or KernelFS objects, so I think that there is no use of constructors...
You need to define it in (exactly)one of your cpp files:
bool KernelFS::available[] = {0};
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With