Objektorienterad programmering i C ++ - Del 8 Inledning Detta är en del 8 av min serie, objektorienterad programmering i C ++. En gruppmedlem är antingen en egenskap eller en metod. En statisk medlem av en klass är medlem vars värde är detsamma för varje föremål instansieras. Detta innebär att om ett föremål ändrar värdet på den statiska delen, kommer denna förändring att återspeglas i ett annat syfte instansieras från klassen. Förändringen (eller det resulterande värdet) kommer att vara densamma i alla instansieras objekt.
Du kan också få tillgång till en statisk medlem med hjälp av klassnamnet utan instansiering. I denna del av serien, tittar vi på statiska medlemmar i C ++ klasser. Du kan ha en statisk medlem längs sido andra medlemmar i din klass. Obs: Om du inte kan se koden, eller om du tror att något saknas (bruten länk, bild frånvarande), bara att kontakta mig på [email protected]. Det vill säga, kontakta mig för minsta problem du har om vad du läser. Statisk egenskap En statisk egenskap kallas också en statisk uppgifter medlem.
Deklarera en Statisk egenskap du deklarerar en statisk egenskap precis som du redogöra för alla andra attribut, men du föregå förklaringen uttryck med sökordet, statiska och ett mellanslag. Syntaxen är: statisk typ Ident; Trots denna enkla funktion, måste du lära dig att använda den statiska medlem. Du behöver inte använda den på enkelt sätt. Exempel Följande klass illustrerar användningen av en statisk egenskap medlem: #include using namespace std; klass MyClass {public: static int sameAll; }; int MyClass :: sameAll = 5; int main () {MyClass myObj; myObj.
sameAll = 6; cout återvända 0; } I koden har du en klass som kallas MyClass. Denna klass har bara en medlem, som är den statiska uppgifter medlem. Du initiera statiska medlem utanför klassbeskrivningen som visas ovan. Du börjar med returtyp av den statiska egenskapen. Detta följs av ett mellanslag och sedan namnet på klassen. Efter att du har omfattningen operatören, då identifierare den statiska egenskapen. Då har du uppdraget operatören och värde. Du instansierar ett objekt bildar den klass som har den statiska medlem på normalt sätt. Linje 1 i den viktigaste funktionen illustrerar detta.
Du kommer åt den statiska egenskapen hos en exemplifierad objekt på vanligt sätt. Den andra raden i den huvudsakliga funktionen illustrerar detta. Att ändra det värde som denna linje har gjort innebär att ändra värdet för klassen (beskrivning) och eventuella instansieras objekt och alla objekt som ännu inte instansieras. Den tredje raden i huvudfunktionen visar den statiska fastighetsvärdet. Den använder klassnamnet; det inte använda objektnamnet. Om du vill använda klassnamnet för att komma åt den statiska attribut, börjar du med klassnamnet.
Detta följs av omfattningen operatören och sedan identifieraren för den statiska egenskapen. Detta visar hur du kan komma åt en statisk attribut med klassnamnet direkt och utan att använda ett föremål; detta är som att komma åt fastigheten i klassbeskrivningen. Den statiska delen är ett slags globala objektet.
Exempel med många objekt Följande exempel illustrerar att den statiska uppgifter medlem är densamma för sin klass och dess instansieras objekt och om du ändrar det genom ett objekt eller genom klassen (MyClass :: sameAll) värdet är förändring till samma nya värde , för alla objekt och klassen: #include using namespace std; klass MyClass {public: static int sameAll; }; int MyClass :: sameAll = 5; int main () {MyClass :: sameAll = 6; cout MyClass obj1; obj1.sameAll = 7; MyClass obj2; cout cout cout återvända 0; } Läs igenom koden och prova.
Den första raden i huvud ändrar värdet med hjälp av klassnamnet. Den andra raden visar det ändrade värdet. Den tredje raden instansierar ett objekt bildar klassen. Den fjärde raden ändrar värdet med hjälp av instansieras objektet. Den femte raden instansieras ett nytt objekt. Resten av linjerna visar värdet med klassen och sedan de två olika objekt. Dessa tre linjer, alla visar samma värde som bekräftar syftet med statisk medlem. Statisk metod Du kan också ha statiska metoder. En statisk metod kan bara hänvisa till statiska medlemmar. Det kan inte använda nyckelordet, detta (se nedan).
Jag kommer inte att ta upp statiska metoder ytterligare i den här artikeln. Nyckelordet this det här sökordet är inte en del av statiska medlemmar. Men jag har bara tagit med den i den här artikeln, eftersom det är kort. Nyckelordet här utgör en pekare till objektet vars medlems metod utförs. Det är en pekare till själva objektet. Följande kod ger en illustration: #include using namespace std; class MyClass {public: int num1; int assignShow () {this->