Junior — Middle
Vai C++ var definēt klasi, kas satur tikai tīras virtuālas funkcijas, un kuru nav iespējams tieši izveidot?
sobes.tech AI
Atbilde no AI
Jā, C++ var definēt klasi, kas satur tikai tīras virtuālās funkcijas, un tādu klasi nevar tieši izveidot. Šāda klase saucas abstrakta klase. Tā kalpo kā saskarne vai pamata klase mantotājiem, kuriem jāīsteno visas tīras virtuālās funkcijas.
Piemērs:
class Interface {
public:
virtual void doSomething() = 0; // tīra virtuālā funkcija
virtual ~Interface() = default;
};
// Nav iespējams tieši izveidot Interface objektu:
// Interface obj; // kompilācijas kļūda
class Implementation : public Interface {
public:
void doSomething() override {
// īstenošana
}
};
int main() {
Implementation impl;
impl.doSomething();
}