| Hjem | Hardware | Nettverk | Programmering | Software | Feilsøking | Systems | 
Nettverk  
  • Ethernet
  • FTP og Telnet
  • IP-adresse
  • Internett Nettverk
  • lokale nettverk
  • modemer
  • Network Security
  • Andre Datanettverk
  • rutere
  • virtuelle nettverk
  • Voice over IP
  • Trådløst nettverk
  • trådløse routere
  •  
    Datamaskin >> Nettverk >> virtuelle nettverk >> Content
    Hva er virtuell arv?
    Virtuell arv er en C++-mekanisme for å lage en basisklasse som trygt kan arves fra flere ganger, uten å forårsake problemer med objektskjæring eller kjøretidsfeil.

    Tenk på følgende eksempel:

    ```c++

    // Grunnklasse

    klasse dyr {

    offentlig:

    strengnavn;

    };

    // Avledet klasse 1

    klasse Hund:offentlig dyr {

    offentlig:

    string rase;

    };

    // Avledet klasse 2

    klasse Katt:offentlig dyr {

    offentlig:

    streng farge;

    };

    // Avledet klasse 3 (arver fra både hund og katt)

    klasse kjæledyr :offentlig hund, offentlig katt {

    offentlig:

    // ...

    };

    ```

    Uten virtuell arv, ville `Pet`-klassen arve to kopier av `Animal`-basisklassen, noe som kan føre til kjøretidsfeil eller objektskjæring (der bare en del av `Pet`-objektet er konstruert). For å forhindre dette kan vi bruke virtuell arv ved å spesifisere nøkkelordet "virtuell" i basisklasseerklæringen:

    ```c++

    // Grunnklasse med virtuell arv

    klasse dyr {

    offentlig:

    strengnavn;

    };

    ```

    Ved å bruke virtuell arv, vil `Pet`-klassen bare arve én kopi av `Animal`-basisklassen, noe som sikrer korrekt oppførsel og forhindrer kjøretidsfeil.

    Fordeler:

    1. Løse tvetydighet: Hjelper med å løse tvetydighet når flere basisklasser har samme medlemsfunksjon eller datamedlem.

    2. Redusert minneoverhead: Unngår oppskjæring av objekter, reduserer minnekostnader og forbedrer ytelsen.

    3. Fleksibilitet: Tillater komplekse arvehierarkier der avledede klasser kan arve fra flere basisklasser.

    Når skal du bruke virtuell arv:

    - Når du har multippel arv og ønsker å unngå tvetydige basismedlemmer eller objektskjæring.

    - Når du vil dele felles funksjonalitet på tvers av flere avledede klasser uten å duplisere kode.

    früher :

     Weiter:
      Relatert Artike
    ·Hvordan lage en VPN Network Med Trend Micro -brannmur 
    ·Hva er definisjonen på vlookup? 
    ·Hvordan sette opp en VPN Remote Access Server 
    ·Er WAN-tilkobling en inngang eller utgang? 
    ·Hva gjør jeg når jeg har installert Min Netgear VPN 
    ·En enkel måte å sette opp VPN på en hjemme-PC til Of…
    ·Hva er SSL VPN 
    ·Hvordan skrive ut med SonicWALL VPN 
    ·Hva er arbeidet til vmux i mlln? 
    ·Hva er en VPN i Analytics 
      Anbefalte artikler
    ·Hvordan koble en PC til en LCD- HDTV Via Ethernet 
    ·Hvordan lage en bærbar PC Internet Router 
    ·Hvordan bytter du batteri i en logitech v220 jet black …
    ·Er e-poster en tilfeldig form for kommunikasjon? 
    ·Slik bruker du en trådløs ruter som en trådløs nett…
    ·Krav til VMware ESX 
    ·Hvordan sette opp en Hosting Server 
    ·Hvor sikker er WAP 
    ·Hvordan koble en Fiber Converter 
    ·Hvilken hensikt tjener et nettverksryggrad? 
    Copyright ©  Datamaskin  http://www.datamaskin.biz/