Das sind keine Member-Variablen, sondern lokale Variablen. Und was du haben willst, sind keine globalen Variablen, sondern Member-Variablen:

protected:
    CResGen Holz;
    ...
public:
    void ResIni() {
        Holz.SetData("Holz", 20, "kg", true);
        ...
    }

Die Member-Variablen könntest du natürlich auch mit in den public-Bereich packen, allerdings sind sie dann eben öffentlich, und wenn du auf sie nur innerhalb anderer Funktionen der selben Klasse zugreifen musst, solltest du sie als private oder protected deklarieren.

...zur Antwort

Was mir spontan auffällt: system() ist nicht definiert. Dazu brauchst du noch den Header stdlib.h.

...zur Antwort

Das liegt nicht an AtmelStudio, sondern daran, dass du den Overwrite-Modus aktiviert hast: Das passiert, wenn der Nummernblock nicht aktiv ist und du die "0"-Taste auf eben jenem drückst. Wenn du sie noch mal drückst (Nummernblock vorher ausschalten, Lämpchen auf der Tastatur soll nicht leuchten!), kommst du wieder in den normalen Modus.

...zur Antwort
C++ Fehler : C2061 , C2143 und C4430

Servus,

habe für Uni ein Programm geschrieben. dann etwas verändert und nun kommen die Fehler aus: 1>c:\users\aliub_000\desktop\swe_home\swe\arbeitsbuch.h(16): error C2061: Syntaxfehler: Bezeichner 'Dosierstation'

1>c:\users\aliub_000\desktop\swe_home\swe\arbeitsbuch.h(18): error C2143: Syntaxfehler: Es fehlt ';' vor '*' 1>c:\users\aliub_000\desktop\swe_home\swe\arbeitsbuch.h(18): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. 1>c:\users\aliub_000\desktop\swe_home\swe\arbeitsbuch.h(18): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.

habe anscheinend in den zwei headern was verändert, was diese Fehler auslöst.

Code:       


/**
 * @(#) Arbeitsbuch.h
 */


#ifndef ARBEITSBUCH_H_H
#define ARBEITSBUCH_H_H
#include "vector"
#include "Rezeptbuch.h"
#include "Dosierstation.h"


class Arbeitsbuch: public Rezeptbuch
{

public:

    void auswahl( );
    void copy_vector (Dosierstation&);

private:

 Dosierstation * a_dosier;

};

#endif


/**
 * @(#) RezeptCPU.h
 */

#ifndef REZEPTCPU_H_H
#define REZEPTCPU_H_H

#include "Rezeptbuch.h"
#include "Arbeitsbuch.h"
#include "Dosierstation.h"
#include "Stampfer.h"
#include "Mischer.h"
#include "Entleerer.h"
#include "Display.h"
#include "Waage.h"
class RezeptCPU
{
    
public:
    RezeptCPU( void );
    void rezeptverarbeiten( );
    void initialisierung();
    void einlesen(string);

private:
    Arbeitsbuch * arbeitsbuch;
    
    Display* display;
    
    Dosierstation* dosier_st;
    
    Entleerer* entleerer;
    
    Mischer* mischer;
    
    Stampfer* stampfer;
    
    Waage* waage;
    
};

#endif

gemeckert wird immer bei der Dosierstation bei Arveitsbuch und RezeptCPU.

Sieht einer den Fehler?

Danke euch

...zum Beitrag

Tatsächlich liegt der Fehler offenbar nicht in den beiden vorliegenden Dateien. Der Compiler meckert immer, wenn es um den Typ "Dosierstation" geht, also wirst du wohl bei dessen Deklaration einen Fehler gemacht haben. Ohne den Code dazu kann ich dir den Fehler aber nicht nennen.

...zur Antwort
einfache objektorientierte Programmierung von Games

Spieleprogrammierung ist nicht einfach. Diesen Punkt kannst du also von der Liste streichen.

Zuerst die Wahl der Sprache: In der Game-Dev-Branche ist C++ eindeutig die Sprache der Wahl.

UDK bietet meines Wissens nach eine C++-Programmierschnittstelle nur für zahlende Kunden, und die Preise sind normalerweise nicht unbedingt niedrig.

Unity nutzt C# und/oder Skriptsprachen zur Programmierung. Auch hier muss man für C++-Support zahlen. C# ist allerdings auch eine objektorientierte Sprache, auch wenn sie nicht die erste Wahl ist, wenn es um ein Spiel geht.

Für C++, was ich dir wirklich empfehlen würde, weil es dafür mit großem Abstand die meisten Codebeispiele etc. gibt, kenne ich diese beiden Engines, die beide Open-Source und kostenlos sind: Einmal die Irrlicht Engine sowie OGRE:

http://www.ogre3d.org/

...zur Antwort

Ich würde dir mal Qt empfehlen. Dort kann man auch UI-Elemente nach Belieben gestalten, und das sollte sogar im Qt-Creator, der Qt-Standard-IDE, funktionieren.

Ansonsten gibt es noch GTK+, bei dem man Themes selbst gestalten und laden kann und somit auch das Aussehen ändern kann. Leider bieten die Entwickler keine aktuellen Binaries für Windows mehr an, und es selbst zu kompilieren ist nicht gerade einfach.

Weiterhin könntest du noch einen Blick auf XUL werfen, das von Mozilla entwickelt wird und beim Firefox und bei Thunderbird zum Einsatz kommt. Wenn dir deren UIs zusagen, solltest du ähnliches auch selbst mit XUL hinkriegen.

...zur Antwort

In der Konsole gibst du folgendes ein:

sudo nano /etc/rc.local

Dann gibst du folgendes ein:

#!/bin/bash

/kompletter/pfad/zum/bfgminer -o ...

Wobei du das "..." natürlich durch den restlichen Befehl ersetzen solltest. Wenn du alles eingegeben hast, drückst du [CTRL]+[O] [ENTER] [CTRL]+[X], um zu speichern und den Editor zu schließen. Nach dem Neustart sollte bfgminer ausgeführt werden.

...zur Antwort

Das musst du per Hand implementieren, d.h. du machst eine Schleife, die durch alle Elemente durchläuft und führst die nötigen Schritte für jedes Element in deinem Code aus.

...zur Antwort

Mit C++ habe ich mich bereits seeehr intensiv befasst

Mit solchen Aussagen wäre ich sehr vorsichtig - auch wenn du die Grundlagen offenbar schon ziemlich gut beherrschst, so bleibt C++ eine sehr komplexe Sprache, die man eben erst nach sehr langer Programmiererfahrung komplett beherrscht.

Im Folgenden gehe ich daher davon aus, dass du C++ bereits hinreichend gut kannst. Des Weiteren gehe ich davon aus, dass du weißt, wie viel Arbeit in einem Computerspiel steckt und dass du niemals alleine ein Spiel wie Battlefield oder Call of Duty oder was auch immer schaffen wirst. Gerade 3D-Spiele sind sehr komplex.

Wenn du das alles also wirklich von Grund auf lernen willst, gibt es tatsächlich eine sinnvolle Option: "Game Coding Complete" ist ein Buch, das so ziemlich alle Grundlagen der Spieleprogrammierung abdeckt:

http://www.amazon.com/Game-Coding-Complete-Fourth-Edition/dp/1133776574/ref=sr_1_1?ie=UTF8&qid=1385307080

Dafür brauchst du sowohl gute Englisch- als auch gute C++-Kenntnisse. Das Buch sollte dir dann alles von Grund auf vermitteln, sodass du deine eigene Engine entwickeln kannst. Im Buch wird DirectX verwendet, ich persönlich bin aber eher ein Fan von OpenGL, das in der Zukunft wegen Steam OS noch an Bedeutung zunehmen sollte - dafür empfehle ich dir die "OpenGL SuperBible", momentan in der 6. Auflage erhältlich.

...zur Antwort

Du hast das Semikolon nach der main-Deklaration falsch gesetzt - da sollte eigentlich gar keins stehen:

#include "SDL.h"

int main(int argc, char **argv)
{
    return 0;
}

Das sollte funktionieren. Allerdings muss ich sagen, dass du als Anfänger noch nicht unbedingt mit SDL hantieren solltest, weil du so auf eben derartige kleine Probleme stößt und so nicht wirklich weiterkommst. Lern also erst mal, vernünftig mit der Konsole zu programmieren, bevor du dich dann an große Themen wie Grafikprogrammierung wagst.

...zur Antwort

http://docs.python.org/3.3/tutorial/

Das sieht doch schon mal ganz gut aus. Es behandelt außerdem v3.3, ist also absolut aktuell. Wenn dir das Tutorial nicht zusagt, kannst du ja mal nach Python 3 im Internet suchen - die Unterschiede zwischen 3.0 und 3.3 sind eher klein und haben dich als Anfänger wohl vorerst nicht zu interessieren.

...zur Antwort

Statt dem ^-Operator solltest du lieber "1 / ..." schreiben oder die Funktion pow() aus math.h nutzen.

Noch ein Tipp am Rande: Wenn du über die Genauigkeit eines double-Wertes hinaus Pi berechnen willst, kannst du entweder "long double" nutzen, was unter Windows aber nicht immer funktioniert, oder, wenn dein Projekt über ein simples Projekt hinaus gehen soll, die Bibliotheken GMP (GNU Multiple Precision Arithmetic Library) oder MPFR verwenden.

...zur Antwort

Dazu muss man erst mal gar nicht studieren. Im Informatikstudium kommt so was zwar vermutlich mal vor, allerdings musst du ja nicht so lange warten:

Erstens musst du programmieren lernen. Betriebssystementwicklung ist ein recht fortschrittliches Thema, weshalb sich Anfänger da eher nicht heranwagen sollten. Wenigstens musst du dir nicht die Frage nach einer geeigneten Programmiersprache stellen - C ist hier eindeutig die Sprache der Wahl; wenn du eine andere Sprache nimmst, wirst du bei der OS-Entwicklung immer mit Schwierigkeiten zu kämpfen haben, die du bei C nicht hast.

Allerdings tun sich auch bei C zahlreiche Probleme auf (ganz zu schweigen von Assembler, das du in Grundzügen auch brauchen wirst). Du musst also ziemlich motiviert sein, um so ein Projekt durchzuziehen - und du darfst vor allem keine zu hohen Erwartungen haben: Dein OS wird kein zweites Windows oder Linux, da in diesen Betriebssystemen hunderte Programmierer jahrelang gearbeitet haben.

Du solltest Antworten auf alle deine Fragen auf dieser Website finden:

http://www.lowlevel.eu/wiki/OS-Dev_f%C3%BCr_Einsteiger

Vieles davon klingt erst mal abschreckend, allerdings brauchst du eben wirklich einiges an Motivation.

...zur Antwort

Einen Punkt kannst du nur verwenden, wenn du das Objekt wie folgt deklariert hast:

Klasse objekt;

Das macht man in C++ aber eher seltener. Diese Version ist deutlich gebräuchlicher:

Klasse *objektptr = new Klasse();

So wird ein Zeiger und ein Objekt erzeugt, wobei der Zeiger (objektptr) auf das Objekt zeigt. Somit handelt es sich nicht mehr um ein tatsächliches Objekt, sondern um eine Referenz auf eben jenes. Normalerweise müsste man es so ansprechen:

(*(objektptr)).foo();

Da man das aber so oft braucht, kann man in C++ den obigen, eher unhandlichen Code durch das hier ersetzen:

objektptr->foo();

Der Compiler wandelt das dann für einen in eine Dereferenzierung um.

...zur Antwort

Auch Hobby-Programmierer planen ihre Projekte. Wie könnten sonst Open-Source-Projekte je zu einem sinnvollen Ergebnis kommen? Demnach sind die größten Unterschiede, dass ein Hobby-Programmierer nicht bezahlt wird und außerdem sich seine Projekte selbst aussuchen kann.

...zur Antwort

Natürlich geht das. Am Einfachsten wäre ein Client/Server-Modell, deutlich sicherer wäre es aber, eine Peer-to-Peer-Verbindung über Hole-Punching aufzubauen und das dann dezentral zu lösen. Wenn du das programmierst, kannst du natürlich bestimmen, was wie verschlüsselt werden soll und wer mitmachen darf.

...zur Antwort