Vad är skyddat arv?

Området datavetenskap använder programmering för att skapa lösningar på problem. C++ är ett programmeringsspråk som används inom datavetenskap som använder objektorientering för att modellera den verkliga världen. I objektorienterad programmering skapas klasser för att tillhandahålla ett ramverk för objektmodeller som används under körningen av ett program. Klasser skapas ofta i en strukturerad hierarki där mer generaliserade föräldraklasser skapas först och sedan används som grund för mer specifikt detaljerade barnklasser. Skyddat arv tillåter efterkommande klasser att ha full och direkt åtkomst till de föregående medlemsobjekt som implicit ärvs till underklasser.

En av de stora fördelarna med objektorientering är att när en struktur eller klass skapas kan man dölja klassens data och funktionalitet från andra programmeringsstrukturer och funktioner om åtkomst inte är nödvändig. I C++ åstadkommes detta genom att använda åtkomstmodifierare. Om en programmerare vill neka åtkomst till den interna informationen och funktionerna i en klass utanför klassen, används nyckelordet ”privat” – men interklassåtkomst mellan interklassmedlemmar är alltid tillåten. För att begränsa åtkomsten endast till efterkommande klasser som i skyddat arv, används nyckelordet ”skyddat”. Nyckelordet ”public” ger full tillgång till medlemsvariabler och funktioner.

Arv i mjukvara har fördelen av att programmeringskoden, som redan har skapats, kan återanvändas indirekt. När en underordnad klass skapas blir alla medlemsvariabler och funktioner i de föregångare klasserna automatiskt en del av underordnet. Programmeraren behöver inte koda om dem. Detta är en stor fördel när stora hierarkier av klasser behövs. Ett exempel på detta kan vara när enheter i en biologisk taxonomimodell behöver replikeras i programvara.

Privat arv sker när föregångare klasser har utsett sina medlemselement som privata. Barn som implicit tar emot dessa variabler och funktioner har inte direkt, omedelbar tillgång till dem, vilket bevarar vissa egenskaper hos föräldern och barnet. Med skyddat arv, när en förälder deklarerar ett element som skyddat, ärvs variablerna eller funktionerna, och barnet kan komma åt dem, men andra klasser kan inte. Offentligt arv tillåter barnet att integrera och manipulera föräldraegenskaper. Det låter även andra strukturer ha tillgång till de underordnade medlemmarna.

Skyddat arv är ett viktigt begrepp i C++-programmering. Det hjälper till att definiera de begränsningar som ett program kommer att fungera under. Kortfattade och välkonstruerade program som använder arv hjälper till att minska applikationsfel, underlättar felsökning och ger kontrollerad flexibilitet till standardobjektorienterade principer för informationsdöljning och inkapsling.