Dator
 |  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> C /C + + -programmering >> Content

    Omdefiniera metoder i C + +

    Under normala förhållanden , metoder i C + + kan inte dela ett namn . Detta orsakar fel genom att införa möjligheten till förvirring i metod referenser . En programmerare som vill använda samma namn för en metod , men omdefiniera den metod som bygger på olika parametrar , har två alternativ . Programmeraren kan överbelasta funktion med samma namn , men att ändra argument metoden . Dessutom, om programmeraren använder en härledd klass han eller hon kan åsidosätta en funktion av en basklass att utföra olika funktioner . Överbelastning Metoder

    När en programmerare deklarerar en metod , som namnet oftast inte kan utse en annan metod med annan kod inuti . Undantaget till detta är då argumenten för metoden skiljer . Till exempel kan en programmerare definiera metoden " beräkna " för att ta ett heltal som argument :

    int beräkna ( int x ) katalog

    Enligt reglerna i C + + , en annan metod som heter " beräkna ", som tar ett heltal som argument inte skulle kunna existera , oberoende av koden inuti metoden. Men , skulle en annan metod med samma namn och olika argument existerar :

    int beräkna ( double x ) katalog

    typ eller argument när metoden anropas skulle avgöra vilken metod exekverar
    .
    Begränsningar

    finns begränsningar för hur metoden överbelastning fungerar i C + + . För att överbelasta ett metodnamn , måste de argument använda olika datatyper , eller skiljer sig i mängden utsedda argument. Metoder som returnerar olika värden , men delar ett namn och identiska argument listan , är inte tillåtna i C + + . Metoder med identiska namn och argument som bara skiljer sig på grund av en annan typ namn ( eller ge en befintlig datatyp ett annat namn ) är inte heller tillåtet . Till exempel :

    typdef int fake_int ,

    int write ( int x ) katalog

    dubbel write ( int x ) katalog

    int write ( fake_int x )

    ingen av dessa tre metoden definitioner följa reglerna för förfarandet överbelastning och kommer tillbaka ett felmeddelande .
    Härledning

    annat sätt att överbelasta en metod är genom klass härledning . Vid konstruktion av klass , kan en programmerare gör en klass ärver funktioner från en annan klass . Den ärva ( härledd ) klass kan använda metoderna för klassen den ärver från ( basklass ) . En basklass ( klass X ) kan ha en metod " print " definieras . En annan klass ( klass Y ) som härrör från klass X har också tillgång till utskrift . Dock kunde klass Y definierar också sin egen version av den tryckta metoden . I detta fall kommer utskriften metoden exekveras vara den som definieras i klass Y , om inte programmeraren anger att klass X versionen av tryck ska köras .
    Exempel

    ett exempel på en metod omdefinieras genom en härledd klass omfattar två klasser . Först basklassen :

    class First (

    allmänheten :

    int x ;

    int returnX ( ) {

    avkastning x ;

    }

    };

    Sedan en härledd klass som omdefinierar " returnX ( ) "-metoden :

    klass Second : offentlig Först {

    allmänheten :

    int returnX ( ) {

    retur x +1;

    }

    };

    den "andra " klass har tillgång till variabeln " x " och metoden " returnX ( ) " som är en del av den " första " klass . Men omdefinierar andra den returnX ( ) metoden i sin egen definition . Detta innebär att när ett objekt av klassen Second anropar returnX ( ) metoden , kommer returvärdet vara x +1 .

    Tidigare:

    nästa:
    relaterade artiklar
    ·Hur man skriver en Line Switch Tangentkombination
    ·Lägga till GMP till Xcode
    ·Hur man skickar en text Sockel i UDP på Linux
    ·Hur Input exponenter i C
    ·Hur man bygger en spelmotor From Scratch
    ·Malloc funktion
    ·Hur man läser en fil till ListBox i C #
    ·Online Tutorials om drivrutiner med C + +
    ·Hur Ignorera mellanslag när du använder längd C + +
    ·Hur hitta resurser för att lära Xcode för iPhone Sof…
    Utvalda artiklarna
    ·Hur man deklarerar variabler i ActionScript
    ·Vad är en Tagged Expression
    ·Hur hittar man den kortaste ordet i Java
    ·Hur man installerar spel till Android via en PC med APK…
    ·Hur konvertera Visual Logic till Visio
    ·Hur att åberopa Python skript från Terminal
    ·IDL Programmeringsteknik
    ·Hur man installerar PyLab på Python
    ·Hur man skapar en Apache MySQL Server -konto Använda W…
    ·Hur får man en System Date i Java
    Copyright © Dator Kunskap http://www.dator.xyz