Junior — Middle
Se poate defini în C++ o clasă care conține doar funcții virtuale pure și care nu poate fi creată direct?
sobes.tech AI
Răspuns de la AI
Da, în C++ se poate defini o clasă care conține doar funcții virtuale pure, iar o astfel de clasă nu poate fi creată direct. Această clasă se numește clasă abstractă. Servește ca interfață sau clasă de bază pentru moștenitori care trebuie să implementeze toate funcțiile virtuale pure.
Exemplu:
class Interface {
public:
virtual void doSomething() = 0; // funcție virtuală pură
virtual ~Interface() = default;
};
// Nu se poate crea un obiect Interface direct:
// Interface obj; // eroare de compilare
class Implementation : public Interface {
public:
void doSomething() override {
// implementare
}
};
int main() {
Implementation impl;
impl.doSomething();
}