C++: invalid use of non-static data member ...?

Hallo, ich habe in C++ einen Header für ein Projekt geschrieben aber ich kann innerhalb einer Klasse nicht auf eine Variable zugreifen.

Es kommt immer der Fehler:

..\ast.cpp:61:19: error: invalid use of non-static data member 'Tree::nodes'
 p.set_type(Tree::nodes[id].get_type());

Hier ist der Code:

ast.h:

#ifndef AST_H_
#define AST_H_

class Tree {
public:
    class Node {
    public:
        enum class Type {
            METHOD,
            IF,
            WHILE,
            STATEMENT,
            EXPRESSION
        };

        void set_id(int id);
        void set_id_parent(int id_parent);
        void set_content(const char* content);
        void set_type(Type type);

        Type get_type();
        const char* get_content();
        int get_id();
        int get_parent_id();
        int* get_child_ids();

    private:
        Type m_type{};
        const char* m_content{};
        int  m_id=0;
        int  m_id_parent=-1;
        int* m_child_ids{};
    };

    void create_node(int parent, const char* content);

    Node get_node(int id);

private:
    Node* nodes{};
    int node_amount=0;
};

#endif

ast.cpp:

#include "ast.h"

void Tree::Node::set_id(int id) {
    m_id = id;
}

void Tree::Node::set_id_parent(int id_parent) {
    m_id_parent = id_parent;
}

void Tree::Node::set_content(const char *content) {
    m_content = content;
}

void Tree::Node::set_type(Type type) {
    m_type = type;
}

const char* Tree::Node::get_content() {
    return m_content;
}

Tree::Node::Type Tree::Node::get_type() {
    return m_type;
}

int Tree::Node::get_id() {
    return m_id;
}

int Tree::Node::get_parent_id() {
    return m_id_parent;
}

int* Tree::Node::get_child_ids() {
    return m_child_ids;
}

//

void Tree::create_node(int parent, const char *content) {
    Node p;
    p.set_id(node_amount);
    p.set_id_parent(parent);
    p.set_content(content);
    nodes[node_amount] = p;
    node_amount++;
}

Tree::Node get_node(int id) {
    Tree::Node p;
    p.set_type(Tree::nodes[id].get_type());
    return p;
}

Ich hoffe jemand kann mir sagen warum dieser Fehler kommt

Außerdem wollte ich etwas C benutzen und lernen, also hätte ich noch eine zweite Frage: Kann mir jemand sagen wie ich das ganze nicht in C++ sondern in C mache?

LG

...zur Frage

Das liegt daran, dass nodes nicht an die Klasse selbst sondern an die jeweilige Instanz gebunden ist.

Falls es sich bei der betreffenden Zeile um die aus Tree::Node get_node(int id) handelt, dann müsste diese so lauten:

p.set_type(this->nodes[id].get_type());

Und zur C-Frage: Im Grunde so ähnlich, nur halt mit structs und Funktionsnamen wie tree_get_node, wobei immer ein Pointer auf die betreffende struct-"Instanz" übergeben wird.

...zur Antwort
ich übergebe doch einen String

Ganz offensichtlich ja nicht.

was mache ich falsch?

Den Codeteil verschweigen in dem du die Variable file definierst.

P.S.: Ich bin mir zu 95% sicher, dass

print(type(file) == str)

die Ausgabe False erzeugen würde...

...zur Antwort

Nein, kann sie nicht.

Rational und irrational sind gegenseitig exklusiv.

Und wenn in diesem Buch tatsächlich steht, dass -19 sowohl rational als auch irrational sei, dann sollte derjenige, der für dieses Buch verantwortlich ist ganz dringend seinen Job entzogen bekommen und niemals wieder in die Nähe von irgendwelchen Büchern gelassen werden...

...zur Antwort
Winter ❄️

Sommer ist einfach Scheiße.

Hitze, Schwitzen, Mücken, Wespen und der ganze andere Scheißkram...

Außerdem: Bei Kälte kann man zur Not immer noch ne weitere Schicht Klamotten drüberziehen. Bei Hitze geht das Gegenteil nur sehr bedingt (und selbst dann ist es im Sommer immer noch viel zu heiß).

Ab ca. 15-18 °C beginnt Scheißwetter, alles über 20°C ist verdammtes Scheißwetter und ab 30°C geht's dann mit verfluchtem Höllenscheißwetter los.

...zur Antwort

Sowohl die 0.0.0.0 als auch die 255.255.255.255 sind IP-Adressen.

Allerdings handelt es sich dabei um spezielle Sonderfälle, die in der Form und Verwendungsweise außer beim DHCP-Discover (also dem "Hallo alle miteinander, hat hier jemand eine IP für mich?") so ziemlich nirgendwo verwendet werden.

Die MAC-Adresse von der dieses Ethernet-Frame abgeschickt wurde ist die 54:89:98:85:0a.

...zur Antwort
Ist ein paar Monate alt

Und noch mindestens 2,4 Jahre lang haltbar...

Solange die Dose unbeschädigt ist kannst du das Zeug vermutlich auch in 3 Jahren noch essen. Ggf. auch in 10 Jahren oder sogar noch mehr.

Der Grund aus dem das ganze so lange haltbar ist: Es wird erhitzt bis sämtliche evtl. enthaltenen Bakterien, Pilzsporen, etc. abgetötet sind und dann im heißen Zustand in ebenfalls aufgeheizte Dosen gefüllt und verschlossen, bevor es soweit abgekühlt ist, dass wieder neue Mikroorganismen die Chance haben sich dranzusetzen.

Außerdem: Mindesthaltbarkeitsdatum.

...zur Antwort
Ich wollte fragen ob es eine Möglichkeit gäbe bs .to zu benutzen ohne Nord Vpn zu kaufen oder andere vpns.

Natürlich gibt es die. Sogar mehrere.

So ziemlich die einfachste dürfte wohl sein, da die ganze Sperrerei nur eine DNS-Umleitung ist, einfach einen DNS-Server zu benutzen, der den korrekten Eintrag bereitstellt.

als ob es ginge die seite irgendwie in der Art zu cracken.

Das nun wiederum nicht. Sieht ganz danach aus, als wäre dir die Bedeutung des Wortes "cracken" nicht ganz geläufig.

...zur Antwort

Kommt bei mir auf den Kontext an.

In den meisten Fällen geht's mir da wie dir.

Wenn es allerdings z.B. darum geht, 5 komplett aufgelegte Patchpanel und die dazugehörigen Dosen durchzumessen und dabei per WhatsApp oder vergleichbarem dem Kollegen im Serverraum durchzugeben er solle umstöpseln, dann wird's auch gerne Mal ein "k, 13" wenn Port 12 in Ordnung war bzw. "pp, ab", falls beim zuletzt gemessenen Port ein "A-B-Dreher" in Panelnähe gemeldet wurde.

...zur Antwort

So wird das jedenfalls nichts.

Mit Strings64 (vmtl. ein 64bit Binary von "GNU strings"?) bekommst du alle mindestens(?) 8 Zeichen langen Zeichenfolgen, die aus "druckbaren Zeichen" (evtl. auch nur aus dem ASCII-Bereich 32 - 126 (jeweils inkl.) bestehen.

Die Kennwörter liegen allerdings in Form von Hashwerten vor, nicht als Klartext.

Mit etwas Glück findest du ungesalzene Hashwerte, dann könntest du mit einem Haufen Zeit und Rainbowtables möglicherweise einen Treffer landen.

...zur Antwort

Da er nicht die Legalisierung der Mobbertötung verlangt ist das ganze einfach nur unzureichend.

Wobei, selbst wenn er das verlangt hätte, dann hätte diese Petition keinen Erfolg gehabt, weil es viel zu viele dumme Drecksschweine gibt, die solchen Untermenschen wie Mobbern tatsächlich Menschenrechte zusprechen.

...zur Antwort

Sind halt Scheißländer mit Scheißkultur...

Aber okay, drehen wir den Spieß doch einfach mal um und sagen, dass

  • Hinrichtungen von Religiösen (ganz besonders diese "Koranleser")
  • Folterungen von "arabisch" aussehenden Leuten
  • u.ä.

hierzulande "Teil der Kultur" wäre. Fändest du das akzeptabel?

...zur Antwort

Der Fehler liegt darin, dass die Bilder von Anfang an im Querformat sind, nur dass in den EXIF-Daten steht, dass das Bild anders gedreht aufgenommen wurde (z.B. durch Messwerte von Sensoren in Kamera/Smartphone/etc. ermittelt).

...zur Antwort

Da fehlt die Referenz auf die Instanz von Main.

So wie du es jetzt hast ist deine Variable m undefiniert.

Lösung: An geeigneter Stelle eine Referenz auf die Instanz von Main übergeben und verwenden.

...zur Antwort

Seltsam, mit exakt dem gleichen Vorgehen (kopieren und einfügen; Tippfehler meinerseits also ausgeschlossen) sieht das Ergebnis bei mir so aus:

[{'id': 14449, 'date': '2022-08-05T07:03:05', 'date_gmt': '2022-08-05T07:03:05', 'guid': {'rendered': 'https://saddle-world-online.de/wp-content/uploads/2022/08/ex_18-13_schwarz.webp'}, 'modified': '2022-08-05T07:03:05', 'modified_gmt': '2022-08-05T07:03:05', 'slug': 'ex_18-13_schwarz', 'status': 'inherit', 'type': 'attachment', 'link': 'https://saddle-world-online.de/ex_18-13_schwarz/', 'title': {'rendered': 'ex_18-13_schwarz'}, 'author': 1, 'comment_status': 'open', 'ping_status': 'closed', 'template': '', 'meta': {'_et_pb_use_builder': '', '_et_pb_old_content': '', '_et_gb_content_width': '', '_mi_skip_tracking': False}, 'media_folder': [237], 'description': {'rendered': '<p class="attachment"><a href=\'https://saddle-world-online.de/wp-content/uploads/2022/08/ex_18-13_schwarz.webp\'><img width="300" height="200" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://saddle-world-online.de/wp-content/uploads/2022/08/ex_18-13_schwarz-300x200.webp" class="attachment-medium size-medium lazyload" alt="" /><noscript><img width="300" height="200" src="https://saddle-world-online.de/wp-content/uploads/2022/08/ex_18-13_schwarz-300x200.webp" class="attachment-medium size-medium lazyload" alt="" /></noscript></a></p>\n'}, 'caption': {'rendered': ''}, 'alt_text': '', 'media_type': 'image', 'mime_type': 'image/webp', 'media_details': {'width': 2560, 'height': 1707, 'file': '2022/08/ex_18-13_schwarz.webp', 'filesize': 67050, 'sizes': {'medium': {'file': 'ex_18-13_schwarz-300x200.webp', 'width': 300, 'height': 200, 'filesize': 7068, 'mime_type': 'image/webp', 'source_url': 'https://saddle-world-online.de/wp-content/uploads/2022/08/ex_18-13_schwarz-300x200.webp'}, 'large': {'file': 'ex_18-13_schwarz-1024x683.webp', 'width': 1024, 'height': 683, 'filesize': 25946, 'mime_type': 'image/webp', 'source_url': 'https://saddle-world-online.de/wp-content/uploads/2022/08/ex_18-13_schwarz-1024x683.webp'}, 'thumbnail': {'file': 'ex_18-13_schwarz-150x150.webp', 'width': 150, 'height': 150, 'filesize': 2916, 'mime_type': 'image/webp', 'source_url': 'https://saddle-world-online.de/wp-content/uploads/2022/08/ex_18-13_schwarz-150x150.webp'}, 'medium_large': {'file': 'ex_18-13_schwarz-768x512.webp', 'width': 768, 'height': 512, 'filesize': 22362, 'mime_type': 'image/webp', 'source_url': 'https://saddle-world-online.de/wp-content/uploads/2022/08/ex_18-13_schwarz-768x512.webp'}, '1536x1536': {'file': 'ex_18-13_schwarz-1536x1024.webp', 'width': 1536, 'height': 1024, 'filesize': 53166, 'mime_type': 'image/webp', 'source_url': 'https://saddle-world-online.de/wp-content/uploads/2022/08/ex_18-13_schwarz-1536x1024.webp'}, '2048x2048': {'file': 'ex_18-13_schwarz-2048x1366.webp', 'width': 2048, 'height': 1366, 'filesize': 60162, 'mime_type': 'image/webp', 'source_url': 'https://saddle-world-online.de/wp-content/uploads/2022/08/ex_18-13_schwarz-2048x1366.webp'}, 'et-pb-post-main-image': {'file': 'ex_18-13_schwarz-400x250.webp', 'width': 400, 'height': 250, 'filesize': 8324, 'mime_type': 'image/webp', 'source_url': 'https://saddle-world-online.de/wp-content/uploads/2022/08/ex_18-13_schwarz-400x250.webp'}, 'et-pb-post-main-image-fullwidth': {'file': 'ex_18-13_schwarz-1080x675.webp', 'width': 1080, 'height': 675, 'filesize': 37242, 'mime_type': 'image/webp', 'source_url': 'https://saddle-world-online.de/wp-content/uploads/2022/08/ex_18-13_schwarz-1080x675.webp'}, 'et-pb-portfolio-image': {'file': 'ex_18-13_schwarz-400x284.webp', 'width': 400, 'height': 284, 'filesize': 12072, 'mime_type': 'image/webp', 'source_url': 'https://saddle-world-online.de/wp-content/uploads/2022/08/ex_18-13_schwarz-400x284.webp'}, 'et-pb-portfolio-module-image': {'file': 'ex_18-13_schwarz-510x382.webp', 'width': 510, 'height': 382, 'filesize': 17596, 'mime_type': 'image/webp', 'source_url': 'https://saddle-world-online.de/wp-content/uploads/2022/08/ex_18-13_schwarz-510x382.webp'}, 'et-pb-portfolio-image-single': {'file': 'ex_18-13_schwarz-1080x720.webp', 'width': 1080, 'height': 720, 'filesize': 64408, 'mime_type': 'image/webp', 'source_url': 'https://saddle-world-online.de/wp-content/uploads/2022/08/ex_18-13_schwarz-1080x720.webp'}, 'et-pb-gallery-module-image-portrait': {'file': 'ex_18-13_schwarz-400x516.webp', 'width': 400, 'height': 516, 'filesize': 17664, 'mime_type': 'image/webp', 'source_url': 'https://saddle-world-online.de/wp-content/uploads/2022/08/ex_18-13_schwarz-400x516.webp'}, 'woocommerce_thumbnail': {'file': 'ex_18-13_schwarz-1000x667.webp', 'width': 1000, 'height': 667, 'filesize': 52956, 'uncropped': True, 'mime_type': 'image/webp', 'source_url': 'https://saddle-world-online.de/wp-content/uploads/2022/08/ex_18-13_schwarz-1000x667.webp'}, 'woocommerce_single': {'file': 'ex_18-13_schwarz-1000x667.webp', 'width': 1000, 'height': 667, 'filesize': 52956, 'mime_type': 'image/webp', 'source_url': 'https://saddle-world-online.de/wp-content/uploads/2022/08/ex_18-13_schwarz-1000x667.webp'}, 'woocommerce_gallery_thumbnail': {'file': 'ex_18-13_schwarz-100x100.webp', 'width': 100, 'height': 100, 'filesize': 1666, 'mime_type': 'image/webp', 'source_url': 'https://saddle-world-online.de/wp-content/uploads/2022/08/ex_18-13_schwarz-100x100.webp'}, 'shop_catalog': {'file': 'ex_18-13_schwarz-1000x667.webp', 'width': 1000, 'height': 667, 'filesize': 52956, 'mime_type': 'image/webp', 'source_url': 'https://saddle-world-online.de/wp-content/uploads/2022/08/ex_18-13_schwarz-1000x667.webp'}, 'shop_single': {'file': 'ex_18-13_schwarz-1000x667.webp', 'width': 1000, 'height': 667, 'filesize': 52956, 'mime_type': 'image/webp', 'source_url': 'https://saddle-world-online.de/wp-content/uploads/2022/08/ex_18-13_schwarz-1000x667.webp'}, 'shop_thumbnail': {'file': 'ex_18-13_schwarz-100x100.webp', 'width': 100, 'height': 100, 'filesize': 1666, 'mime_type': 'image/webp', 'source_url': 'https://saddle-world-online.de/wp-content/uploads/2022/08/ex_18-13_schwarz-100x100.webp'}, 'dgwt-wcas-product-suggestion': {'file': 'ex_18-13_schwarz-64x43.webp', 'width': 64, 'height': 43, 'filesize': 974, 'mime_type': 'image/webp', 'source_url': 'https://saddle-world-online.de/wp-content/uploads/2022/08/ex_18-13_schwarz-64x43.webp'}, 'full': {'file': 'ex_18-13_schwarz.webp', 'width': 2560, 'height': 1707, 'mime_type': 'image/webp', 'source_url': 'https://saddle-world-online.de/wp-content/uploads/2022/08/ex_18-13_schwarz.webp'}}, 'image_meta': {'aperture': '0', 'credit': '', 'camera': '', 'caption': '', 'created_timestamp': '0', 'copyright': '', 'focal_length': '0', 'iso': '0', 'shutter_speed': '0', 'title': '', 'orientation': '0', 'keywords': []}}, 'post': None, 'source_url': 'https://saddle-world-online.de/wp-content/uploads/2022/08/ex_18-13_schwarz.webp', '_links': {'self': [{'href': 'https://saddle-world-online.de/wp-json/wp/v2/media/14449'}], 'collection': [{'href': 'https://saddle-world-online.de/wp-json/wp/v2/media'}], 'about': [{'href': 'https://saddle-world-online.de/wp-json/wp/v2/types/attachment'}], 'author': [{'embeddable': True, 'href': 'https://saddle-world-online.de/wp-json/wp/v2/users/1'}], 'replies': [{'embeddable': True, 'href': 'https://saddle-world-online.de/wp-json/wp/v2/comments?post=14449'}], 'wp:term': [{'taxonomy': 'media_folder', 'embeddable': True, 'href': 'https://saddle-world-online.de/wp-json/wp/v2/media_folder?post=14449'}], 'curies': [{'name': 'wp', 'href': 'https://api.w.org/{rel}', 'templated': True}]}}]

Python Version: 3.9.7

python-requests Version: 2.25.1

...zur Antwort

Der genaue Verbrauch hängt davon ab, ob du alle zwei Sekunden, im Abstand von 10 Minuten oder nur alle halbe Stunde oder noch weniger oft die Ansicht aktualisierst.

Aber davon weitestgehend unabhängig müsstest du dich schon sehr anstrengen um allein mit dieser App auch nur annähernd die Hälfte von 1,3 GB zu verballern.

...zur Antwort

Nein darfst du nicht. Hättest du aber auch selbst drauf kommen können, wenn du dein Gehirn (sofern vorhanden) mal ganz kurz benutzt hättest.

Und Beihilfe zu einer Straftat bekommst du hier (hoffentlich) auch nicht.

...zur Antwort