4 Stimmen

statische Mitgliedsvariable innerhalb einer lokalen Klasse in C++?

Ich weiß, dass wir nicht erklären können, dass ein static Member-Variable innerhalb einer lokalen Klasse... aber der Grund dafür ist nicht klar.

Kann mir das bitte jemand erklären?

Und warum können wir nicht auf eine nicht static Variable, die innerhalb der Funktion definiert wurde, in der die lokale Klasse definiert wurde, direkt in den Mitgliedsfunktionen der lokalen Klasse?

In dem unten angegebenen Code:

int main(int argc, char *argv[])
{
    static size_t staticValue = 0;

    class Local
    {
         int d_argc; // non-static data members OK
         public:
         enum // enums OK
         {
             value = 5
         };
         Local(int argc) // constructors and member functions OK
         : // in-class implementation required
          d_argc(argc)
         {
               // global data: accessible
               cout << "Local constructor\n";
               // static function variables: accessible
               staticValue += 5;
         }
         static void hello() // static member functions: OK
         { 
            cout << "hello world\n";
         }
   };
   Local::hello(); // call Local static member
   Local loc(argc); // define object of a local class.
   return 0;
}

Statische Variable staticValue direkt zugänglich ist, während auf der anderen Seite die argc Argument von main ist nicht....

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X