Могу ли я объявить extern функцию в namespace, а определить её в классе?
Могу ли я объявить extern функцию в namespace, а определить уже в классе?
namespace emmc {
extern void proot(string dir);
}
class Main {
private:
void emmc::proot(string dir) {
.....
}
};
Если нет, то есть ли способ реализовать нечто подобное?
UPD: вот минимально компилируемый пример:
#include <iostream>
using namespace std;
namespace emmc {
extern void start();
}
class Kernel {
private:
void emmc::start() {
cout << "It works!" << endl;
}
public:
void init() {
emmc::start();
}
};
int main() {
Kernel kernel;
kernel.init();
return 0;
}
Но вот что пишет g++:
~ # g++ test.cpp
test.cpp:10:14: error: invalid use of ‘::’
10 | void emmc::start() {
| ^~~~