Verstehen "class isaf::Cat2 * cat2 = new isaf::Cat2Release(data); "

  • Ersteller aktivfrühstück
  • Erstellt am
A

aktivfrühstück

Eroberer
Hey Leute ich wurschtel mich bei c++ gerad durch einen Quelltext und bin dabei auf folgendes Konstrukt gestoßen
Code:
class isaf::Cat2 * cat2 = new isaf::Cat2Release(data);

Kann mir einer kurz erklären was dies zu bedueten hat, bzw in welchem Abschnitt eines C++ Buches man anfangen zu suchen sollte?ich hoffe die Frage ist nicht ganz so bescheuert wie es klingt, aber ich habe keinen Ansatz wo ich suchen sollte:)
 
Loesch erstmal das Wort 'class', weil das da eigentlich nichts zu suchen hat. Dann schaust Du Dir die Syntax des 'new' operators an, mit dem man in C++ Speicher anfordert. Danach schaust Du Dir Vererbung an, um rauszufinden, weshalb man mit der Klasse 'isaf::Cat2Release' eine Klasse 'isaf::Cat2' initiieren kann.
 
Hi,
Loesch erstmal das Wort 'class', weil das da eigentlich nichts zu suchen hat.
Das ist der Teil ueber den ich auch gestolpert bin, das hab ich in der Form noch nicht gesehen, scheint aber in der Tat das Gleiche zu sein wie wenn man das class weglaesst.
Ich vermute das ist eine optionale Schreibweise um deutlich zu machen dass es sich um eine Klasse handelt? Aber schon komisch.

Der Rest sollte dann in der Tat klar sein.

Edit: Hatte mir eben einen kleinen Test dazu geschrieben, vll. interessiert's ja jemanden:
Code:
#include <iostream>

class FooBase
{
public:
  FooBase() { std::cout << "Init FooBase.\n"; }
  ~FooBase() { std::cout << "Destroy FooBase.\n"; }
};

class FooSub : public FooBase
{
public:
  FooSub(int data) { std::cout << "Init FooSub: data: " << data << ".\n"; }
  ~FooSub() { std::cout << "Destroy FooSub.\n"; }
};

int main (int argc, char ** argv)
{
  class FooBase * foo = new FooSub(50);
  delete foo;
}

mfg,
bytepool
 
Zuletzt bearbeitet:
ich danke euch beiden fürs erste! Ich werde alles mal ausprobieren und auch schauen wie es sich verhält!
 

Ähnliche Themen

"Probleme" mit einem Kernelmodul

PHP Programmierer (m/w) für universitätsnahes StartUp

Versuch einer UNIX-Definition

Squid nur zum maskieren der eigenen IP, nicht für Webserver auf port 80

Probleme bei erster Gentoo Installation

Zurück
Oben