Fragen von einem "Dummy" - Seite 275

 

Hallo! Wie finde ich einen Wert in einem zweidimensionalen Array? Sie müssen in der ersten Dimension suchen. Es scheint kein Standardmittel zu geben. Ich danke Ihnen!

 
zhurkin:

Hallo! Wie finde ich einen Wert in einem zweidimensionalen Array? Sie müssen in der ersten Dimension suchen. Es scheint kein Standardmittel zu geben. Ich danke Ihnen!

Auf die altmodische Art. Zyklus. Wenn es gleich ist, war's das.
 
ALXIMIKS:

Ich habe begonnen, OOP zu studieren.

Ich hatte ein Problem beim Schreiben eines Nachkommens einer Basisklasse, der Compiler schreibt - "'ХХХХХХХ' - wrong parameters count".

Ich habe lange nach dem Grund gesucht, Artikel und Fachbücher gelesen,

aber ich habe es gefunden - die Basisklasse hat einen Konstruktor, es ist einer und parametrisch.

Ich habe auch eine Lösung gefunden - Überladung der Konstruktorfunktion mit dem Standardkonstruktor,

aber dann muss ich alle Parameter des parametrischen Konstruktors der Basisklasse in den Konstruktor des Nachfolgers ziehen, damit die Logik stimmt.

Gibt es noch andere Möglichkeiten?

Gibt es eine Möglichkeit, bei der Deklaration einer Nachfolgeklasse, an wen was zu verteilen? Zum Beispiel: diese Parameter für den Konstruktor der Basisklasse und diese Parameter, damit der Nachkomme sich nicht langweilt...

Wenn eine Basisklasse einen einzigen parametrischen Konstruktor hat, kommt die Nachfolgeklasse nicht umhin, ihn aufzurufen. Die untergeordnete Klasse kann jedoch eine beliebige Anzahl von Parametern haben, auch ganz ohne Parameter. Das Wichtigste ist, dass der Konstruktor der Basisklasse mit allen ihm zugewiesenen Parametern aufgerufen wird. Beispiel:

class CParent
{
   public:
      CParent(int myID, string myName, double myValue)
      {
         id = myID;
         name = myName;
         value = myValue;
      }
   private:
      int id;
      string name;
      double value;
};

class CChildOne : CParent
{
    public:
       CChildOne() : CParent(2, "CChildOne", 2.34){;}
};

class CChildTwo : CParent
{
    public:
       CChildOne(int myID, int param) : CParent(myID, "CHildTwo", 2.56)
       {
          xParam = param;
       }
    private:
       double xParam;
};

 

Es gab eine Diskussion in dem Thread über


ENUM_POSITION_TYPE

zwei Werte. Und was wird zurückgegeben, wenn es keine offenen Stellen gibt?

Ich verwende die Methode PositionType() aus der Standardbibliothek.

Ok, ich habe es, PositionSelect() gibt false zurück, und PositionType() gibt den Typ der zuletzt ausgewählten Position zurück.



es stellt sich heraus, dass, wenn keine Position eröffnet ist, immer 0 zurückgegeben wird, d.h. als ob eine Kaufposition eröffnet wäre?

Wie kann ich das umgehen?


 
openlive:

Es gab eine Diskussion in dem Thread über


ENUM_POSITION_TYPE

zwei Werte. Und was wird zurückgegeben, wenn es keine offenen Stellen gibt?

Ich verwende die Methode PositionType() aus der Standardbibliothek.

Ok, ich habe es, PositionSelect() gibt false zurück, und PositionType() gibt den Typ der zuletzt ausgewählten Position zurück.



es stellt sich heraus, dass, wenn keine Position eröffnet ist, immer 0 zurückgegeben wird, d.h. als ob eine Kaufposition eröffnet wäre?

Wie kann ich das umgehen?


PositionSelect() wird ausgewählt, wenn es eine Position gibt, unabhängig von ihrem Typ, 0 - keine Position, 1 - ja, und der Typ ist als bequem definiert.
 

Es gibt zwei Varianten derOnCalculate-Funktionsdefinition:

1)int OnCalculate (const int rates_total, // size of array price[]

const int prev_calculated, // verarbeitete Balken beim vorherigen Aufruf
const int begin, // ab dem signifikante Daten beginnen
const double& Preis[] // Array für die Berechnung
);

2)int OnCalculate (const int rates_total, // Größe der Eingabezeitreihe

const int prev_calculated, // beim vorherigen Aufruf verarbeitete Balken
const datetime& time[], // Zeit
const double& open[], // Öffnen
const double& high[], // Hoch
const double& low[], // Niedrig
const double& close[], // Schließen
const long& tick_volume[], // Tick-Volumen
const long& volume[], // Real Volume
const int& spread[] // Spread
);

Rufen Sie die Funktion 1)OnCalculate()auf und füllen Sie alle Parameter vor - OnCalculate(rates_total,0,0,_price);

FRAGE: Können Sie bitte die Parameter für den zweiten Aufruf vonOnCalculate() in diesem Fall angeben?

 
Piterrr:

Es gibt zwei Varianten derOnCalculate-Funktionsdefinition:

1)int OnCalculate (const int rates_total, // size of array price[]

const int prev_calculated, // verarbeitete Balken beim vorherigen Aufruf
const int begin, // ab dem signifikante Daten beginnen
const double& Preis[] // Array für die Berechnung
);

2)int OnCalculate (const int rates_total, // Größe der Eingabezeitreihe

const int prev_calculated, // beim vorherigen Aufruf verarbeitete Balken
const datetime& time[], // Zeit
const double& open[], // Öffnen
const double& high[], // Hoch
const double& low[], // Niedrig
const double& close[], // Schließen
const long& tick_volume[], // Tick-Volumen
const long& volume[], // Real Volume
const int& spread[] // Spread
);

Rufen Sie die Funktion 1)OnCalculate()auf und füllen Sie alle Parameter vor - OnCalculate(rates_total,0,0,_price);

FRAGE: Können Sie bitte die Parameter für den zweiten Aufruf vonOnCalculate() in diesem Fall angeben?

und weder im ersten noch im zweiten Fall muss etwas ausgefüllt werden.
 
zfs:
und im ersten oder zweiten Fall muss nichts ausgefüllt werden.
Ich muss diese Funktion zwangsweise aufrufen - wie gebe ich in diesem Fall die Parameter ein?
 
Piterrr:
Ich muss diese Funktion zwangsweise aufrufen - wie gebe ich in diesem Fall die Parameter ein?
Erstellen Sie Ihre eigene, diese kann nicht.
 
zfs:
Sie können keine eigene erstellen.
Ich erstelle meine eigene, in die ich dieOnCalculate()-Funktion schreibe, aber wenn ich sie mit Parametern fülle, erzeugt sie Fehler - bitte senden Sie mir ein Beispiel.
Grund der Beschwerde: