Junior — Middle
Kas C++-s ir iespējams definēt klasi, kas satur tikai tīras virtuālas funkcijas un kuru nav iespējams tieši izveidot?
sobes.tech AI
Vastus AI-lt
Jah, C++-s on võimalik määratleda klass, mis sisaldab ainult puhtaid virtuaalseid funktsioone, ning sellist klassi ei saa otse luua. Sellist klassi nimetatakse abstraktseks klassiks. See toimib liidese või alusklassina pärijatele, kes peavad rakendama kõiki puhtaid virtuaalseid funktsioone.
Näide:
class Interface {
public:
virtual void doSomething() = 0; // puhas virtuaalne funktsioon
virtual ~Interface() = default;
};
// Ei ole võimalik otse luua Interface objekti:
// Interface obj; // kompileerimisviga
class Implementation : public Interface {
public:
void doSomething() override {
// rakendamine
}
};
int main() {
Implementation impl;
impl.doSomething();
}