Programmieren – die neusten Beiträge

C++ funktion() should have been declared inside namespace?

Hallo, ich arbeite gerade an einer Header Datei in C++. Aber ich kann nun nicht mehr weitermachen weil ständig ein Fehler auftaucht:

meinHeader.h:21:38: error: 'void meinNamespace::draw(int, int)' should have been declared inside 'meinNamespace'

Ich kann im Internet nichts hilfreiches finden und weiß nicht warum der Fehler auftaucht. Hier die betroffenen Codeabschnitte:

#include <Windows.h>
#include <WinUser.h>
#include <string>
#include <stdio.h>
#include <stdlib.h>

#include "meinHeader.h"

#define PI 3.14

enum meinNamespace::color {
    DARKBLUE = 1, 
    DARKGREEN, 
    DARKTEAL, 
    DARKRED,
    DARKPINK,
    DARKYELLOW,
    GRAY, 
    DARKGRAY, 
    BLUE, GREEN, 
    TEAL, 
    RED, 
    PINK, 
    YELLOW, 
    WHITE
};

struct meinNamespace::setColor {
    color _c;
    HANDLE _console_handle;
    setcolor(color c, HANDLE console_handle)
        : _c(c), _console_handle(0)
    { 
        _console_handle = console_handle;
    }
};


void meinNamespace::draw(int x, int y) {
    HWND myconsole = GetConsoleWindow();
    HDC mydc = GetDC(myconsole);

    int pixel =0;

    COLORREF COLOR= RGB(255,255,255); 


    for(double i = 0; i < PI * 4; i += 0.05) {
        SetPixel(mydc,pixel,(int)(50+25*cos(i)),COLOR);
        pixel+=1;
    }
    ReleaseDC(myconsole, mydc);
}

void meinNamespace::drawSquare(int aa, int ab, int ba, int bb) {
    draw(aa,bb);
}

Header:

#ifndef MEINHEADER_H
#define MEINHEADER_H

namespace meinNamespace {
    enum color {
        DARKBLUE=1,DARKGREEN,
        DARKTEAL,DARKRED,
        DARKPINK,DARKYELLOW,
        GRAY, DARKGRAY,
        BLUE,GREEN,
        TEAL,RED,
        PINK,YELLOW,
        WHITE
    };
    struct setcolor;
    void meinNamespace::draw(int x, int y);
    void meinNamespace::draw(int a, int b);
}

#endif

Die Funktionen sollen in ein Konsolenfenster Pixel schreiben, ob sie funktionieren weiß ich noch nicht und sie sind auch noch nicht fertig. Ich weiß nicht wo der Fehler verursacht wird. Ich hoffe jemand kann mir da helfen

LG

Software, IT, programmieren, CPP, development, Informatik, cpp lernen, Cpp Programierung

Javascript - leere Variable prüfen?

Ich habe die letzten Tage angefangen, mich mit Programmierung in HTML und Javascript zu befassen, die ersten Dinge sind auch gelaufen, aber jetzt stehe ich vor einem Problem, wo mir weder youtube noch Google Suche ein Ergebnis liefern konnten, das funktionierte, wahrscheinlich ist es trotzdem einfach aber ich komme nicht drauf:

Ich möchte eine Art Checkliste erstellen, aus einem Eingabefeld soll ein Text ins nächste freie Feld eingefügt werden, dazu muss ich (nach meinem Kenntnissstand, was ich bisher gemacht habe, und was funktionierte, ohne mich dazu zusätzlich belesen zu haben), über if... else Bedingungen nacheinander prüfen ob die vorherigen Felder (text1, text2, text3... jeweils eine eigene Variable) leer sind, um das dann entweder in das Feld einzufügen oder das nächste zu prüfen...
Wenn alle verfügbaren Felder gefüllt sind, soll beim Versuch, die Eingabe zu machen in einem extra Feld eine Meldung kommen "Liste voll", bei meinen bisherigen Versuchen, obwohl kein Feld belegt ist, springt das Programm sofort zu diesem Punkt, stellt also offensichtlich nicht fest, dass die Variablen der vorherigen Felder noch NICHT belegt sind

(Das gleiche soll dann passieren, wenn ein Punkt erledigt ist, jeweils über einen Button soll dieser Punkt entfernt werden und falls nachfolgende Felder belegt sind, diese jeweils nachrücken (also wenn das nachfolgende Feld belegt ist, den Inhalt dieser Variable übernehmen, sonst Variable leeren))

Computer, HTML, programmieren, JavaScript

Wie gebe ich Inhalte korrekt beim Methodenaufruf in BlueJ ein?

Hallo allerseits,

ich hoffe jemand kann mir bei meinem Denkfehler helfen. (Kurzfassung am Ende)

Ich habe Informatik (11.Klasse, 2.Lehrjahr) in der Schule und habe zuhause selbst ein eigenes Projekt in BlueJ begonnen, unabhängig vom Unterricht. Dabei versuche ich neue Inhalte aus dem Unterricht spaßeshalber in dem Projekt zu wiederholen.

Zu meinem Projekt: Ich wollte einen Laden/Supermarkt erstellen, der (recht rudimentär) über die Konsole Feedback gibt und über Methodenaufrufe gesteuert wird.

Vor einiger Zeit haben wir in der Schule mit Strukturen wie Array, List, Stack und Queue abgeschlossen, gehen darauf aber nun mit neuem Wissen zurück ans aktive Programmieren. Deshalb wollte ich meinen Laden nun über List neu programmieren, es sollen also alle möglichen Produkte in einer List gespeichert sein.

Unser Lehrer hat uns eine bereits erstellte Klasse List ausgeteilt, anstatt mit ArrayList zu arbeiten. Ich nutze diese Klasse auch in meinem Projekt, sie besitzt soweit ich weiß auch in etwa dieselben Fähigkeiten wie ArrayList und heißt List<ContentType>.

Also war mein Gedankengang für die neue Umsetzung:

  1. Klasse Produkt erstellen mit den Attributen int Preis, int Warennummer und String Name (bei Preis macht double rückblickend mehr Sinn); siehe Bild

2.Klasse Inventar erstellen, bei der man Produkte in das Inventar einfügen kann, etc.; Sie besitzt eine List<Produkt> produktliste; siehe Bilder (2 und 3)

Insgesamt ist das noch nicht alles durchdacht oder vollständig, und orientiert sich etwas an dem was wir im Unterricht in ähnlicher Form bereits programmiert haben (in Form einer Bibliothek). Ist sicher alles sehr ineffizient und kann besser umgesetzt werden.

Wahrscheinlich lacht ihr über meine Gedankenblockade, aber ich kann mich in keinster Weise mehr daran erinnern, wie ich bei dem Methodenaufruf produktHinzufuegen(Produkt pProdukt) der Klasse Inventar mein nachgefragtes Produkt angebe. Muss ich das mit Schweifklammern angeben, eine bestimmte Methode aufrufen, habe ich etwas bei der Deklarierung etc. vergessen? Ich bin gerade etwas hilflos und habe auch schon verschiedene Eingaben ausprobiert.

Wäre super, wenn jemand mir auf die Sprünge helfen könnte.

Kurzfassung: Laden/Supermarktprojekt in BlueJ, mit einer allgemeinen Klasse Produkt. Über Klasse Inventar können dem Inventar List<Produkt> neue Produkte hinzugefügt werden. Wie gebe ich dieses Produkt bzw. mehrere Produkte bei Methodenaufruf produktHinzufuegen(Produkt pProdukt) korrekt an? Muss ich etwas anders programmieren?

(Netto war das ursprüngliche Projekt mit einer einzigen Klasse und String; die Klasse Laden ist noch leer, abgesehen von der Erzeugung eines Regales vom Typ Inventar)

Gerne nachfragen, falls ich etwas nicht gut erklärt habe oder anderweitig Bilder schicken soll. Für Tipps und allgemeine Verbesserungsvorschläge bin ich immer offen!

Bild zum Beitrag
Schule, programmieren, Java, BlueJ, Informatik

Meistgelesene Beiträge zum Thema Programmieren