Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [c++] wie muss der datentyp richtig aussehen? (https://www.delphipraxis.net/107913-%5Bc-%5D-wie-muss-der-datentyp-richtig-aussehen.html)

fwsp 4. Feb 2008 15:51


[c++] wie muss der datentyp richtig aussehen?
 
hallo,

kann mir jmd zeigen wie dieses konstrukt in c++ aussehen könnte? meine kenntnisse sind noch zu gering um die fehlermeldung qualitativ auswerten zu können-.-
danke.

Delphi-Quellcode:
type
  NodeArray = array[0 .. 25] of Node;
  PNodeArray = ^NodeArray;
  Node = record
    Offsets: Liste;
    Next: PNodeArray;
  end;

Loki77 4. Feb 2008 16:37

Re: [c++] wie muss der datentyp richtig aussehen?
 
Hallo!
Glaube so müsste es klappen....

Delphi-Quellcode:
type
  {
    NodeArray = new Node[26];
    PNodeArray = *NodeArray;
    {
      record Node
      {
        Offsets: Liste;
        Next: PNodeArray;
      }
    }
}
Ist nicht getestet.....

Philipp

Apollonius 4. Feb 2008 16:45

Re: [c++] wie muss der datentyp richtig aussehen?
 
Diese Übersetzung halte ich ehrlich gesagt für Käse. C++ kennt kein Record und Typen werden nicht mit = deklariert.
Code:
struct Node {
  Liste Offsets;
  Node * Next[26];
};

typedef Node NodeArray[26];
typedef NodeArray * PNodeArray;
Mein C++ scheint etwas eingerostet zu sein.

DMW 4. Feb 2008 16:50

Re: [c++] wie muss der datentyp richtig aussehen?
 
Du hast hier offenbar eine zirkuläre Referenz, da Node erst nach NodeArray definiert wird. Schon dein Delphi-Code ist bei mir nicht übersetzbar.

Eine äquivalente Übertragung sähe etwa so aus:
Code:
typedef Node NodeArray[26];
typedef NodeArray* PNodeArray;

struct Node
{
  Liste Offsets;
  PNodeArray Next;
};
Natürlich stößt du dabei auf die gleichen Probleme.

JasonDX 4. Feb 2008 17:03

Re: [c++] wie muss der datentyp richtig aussehen?
 
Rein aus dem Bauch heraus müsste die korrekte Delphi-Version so lauten:
Delphi-Quellcode:
type
  PNodeArray = ^NodeArray;
  Node = record
    Offsets: Liste;
    Next: PNodeArray;
  end;
  NodeArray = array[0 .. 25] of Node;
Zumindest sollte das funktionieren, da Delphi Pointerdefinitionen auf zu dem Zeitpunkt noch undefinierte Datentypen zulässt.

In C++ ist dies IIRC nicht möglich, weshalb du auf void-Pointer setzen musst.
Code:
typedef struct Node
{
  Liste Offset;
  void* Next;
} NodeArray[26];
greetz
Mike


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:26 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz