Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » C++Aufgabe Probleme

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
17.10.2017, 18:57 Uhr
Progger33



Hallo alle zusammen habe gerade probleme bei dieser Aufgabe den Konstruktor zu implementieren ,habe ich ihn falsch implementiert?

https://www.pic-upload.de/view-34115753/hd1.png.html

https://www.pic-upload.de/view-34115758/hd2.png.html

C++:

/*
* CTip.h
*
*  Created on: 17.10.2017

*/


#ifndef CTIP_H_
#define CTIP_H_
#include<iostream>
using namespace std;
#include<string>
class CTip {
private:
    unsigned short m_numbers[6];
    unsigned short m_countNumbers = 0;
public:
    CTip(unsigned short m_countNumbers=0);
    ~CTip();

    bool addNumber( unsigned short number );
    bool isValid();
    unsigned short operator* (CTip& other);
    friend ostream& operator<<(ostream& out ,const CTip& tip);
};
ostream& operator<<(ostream& out ,const CTip& tip);

#endif /* CTIP_H_ */



cpp


C++:



#include "CTip.h"
#include<iostream>
using namespace std;
#include<string>

CTip::CTip(unsigned short m_countNumbers) {
    if(m_countNumbers>= 0 && m_countNumbers<=6){

        m_countNumbers = number;
    }

}

CTip::~CTip() {
    // TODO Auto-generated destructor stub
}







Wie soll ich denn genau den Konstruktor implementieren ?

Ich bin mir nicht sicher .

Bitte um Hilfe

Dieser Post wurde am 17.10.2017 um 18:57 Uhr von Progger33 editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
18.10.2017, 08:33 Uhr
ao

(Operator)


Laut Klassendiagramm soll der Konstruktor parameterlos sein, d.h. er kann nur einen leeren Tip anlegen. Und die Inititalisierung von m_countNumbers solltest du besser in der Initialisierungsliste machen - kennst du doch, oder?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
18.10.2017, 10:39 Uhr
Progger33



Was meinst du genau mit der Initialisierungsliste ?

Was soll ich da genau machen ?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
18.10.2017, 11:18 Uhr
ao

(Operator)


OK, wenn du nicht weißt, was eine Initialisierungsliste ist, dann mach es einfach wie bisher im Konstruktor-Body.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
19.10.2017, 21:24 Uhr
Progger33



Danke die Aufgabe habe ich schon fertig .
Bin jetzt bei dem 2 Aufgabenteil beim verzweifeln.

https://www.pic-upload.de/view-34129557/c.png.html

Wieder beim Konstruktor beim hängen:


C++:
#ifndef CLOTTOTICKET_H_
#define CLOTTOTICKET_H_
#include<iostream>
using namespace std;
#include<string>
#include "CTip.h"
class CLottoTicket{
private:
    string m_name;
    unsigned short m_maxTips;
    unsigned short m_countTips = 0;
    CTip* m_tips;

public:
    CLottoTicket(string name, unsigned short maxTips = 12);
    ~CLottoTicket();
    string getName();
    CLottoTicket& operator+=(CTip tip);
    float winnings(CTip drawing, float winFor3, float winFor4,float winFor5,float winFor6);




};





cpp

C++:
#include<iostream>
using namespace std;
#include<string>
#include"CLottoTicket.h"
#include "CTip.h"
CLottoTicket::CLottoTicket(string name, unsigned short maxTips ){
      m_name = name;
      if(m_maxTips >=6){
          m_maxTips = maxTips;
          for(int i = 6; i>=m_maxTips; i++){
              m_maxTips = maxTips;

          m_maxTips[i]= maxTips;  Anzahl maximal hinzufügender Tipps?
          i++;
          }
      }
}





Ist es so richtig das ich eine for Schleife einbaue?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
20.10.2017, 09:55 Uhr
Progger33



Ich denke das man die for Schleife doch nicht braucht und einfach den Speicher allokieren muss?

C++:
* CLottoTicket.cpp
*
*  Created on: 19.10.2017
*      Author: Medion
*/
#include<iostream>
using namespace std;
#include<string>
#include"CLottoTicket.h"
#include "CTip.h"
CLottoTicket::CLottoTicket(string name, unsigned short maxTips ){
      m_name = name;
      if(m_maxTips >=6){
          m_maxTips = maxTips;



          m_maxTips[m_tips]= maxTips;
      }
}


Bei m_tips bin mir nicht sicher?

Es gibt ja kein anderes array oder so?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
20.10.2017, 21:46 Uhr
ao

(Operator)



Zitat von Progger33:
Ich denke das man die for Schleife doch nicht braucht und einfach den Speicher allokieren muss?

Recht so, guter Plan.


C++:
CLottoTicket::CLottoTicket(string name, unsigned short maxTips ){
      m_name = name;
      if(m_maxTips >=6){
          m_maxTips = maxTips;


Du meinst hier wahrscheinlich if (maxTips ...) und nicht if (m_maxTips, richtig?

Aber da fehlt das else - was soll passieren, wenn man weniger als 6 übergibt?


C++:
          m_maxTips[m_tips]= maxTips;
      }
}

Das hier ist leider Unsinn, m_maxTips ist kein Array, man kann es also nicht indizieren.

m_tips musst du noch zuweisen, das ist ein Pointer auf CTip. Der Name legt nahe, dass er mehrere Tips enthalten soll, und in der Anweisung steht noch was von allokiertem Array. Ahnst du was?

Ich muss übrigens mal wieder erwähnen, dass es ganz ganz doof ist, in C++ mit C-Style-Arrays zu hantieren. Die Aufgabe ist so gestellt, darum kannst du nix dran ändern, aber merk dir bitte für die Zukunft, für den Fall, dass du mal ein Kollege wirst, dass für solche Sachen die Containerklasse std::vector erfunden wurde. Die nimmt dir den ganzen Speicherverwaltungskram tutto kompletto ab, keine wildgewordenen Pointer und keine Speicherlecks mehr. Ich kann nicht verstehen, wieso an Unis immer noch dieser C-mit-Klassen-Schrott gelehrt wird. Als wären wir noch in den Achtzigern.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
22.10.2017, 22:03 Uhr
Hans
Library Walker
(Operator)



Zitat von ao:
Ich kann nicht verstehen, wieso an Unis immer noch dieser C-mit-Klassen-Schrott gelehrt wird. Als wären wir noch in den Achtzigern.

Naja, zum einen gab es ja bis weit in die 90er Jahre Lehrbücher, die C und C++ munter gemischt haben und die stehen immer noch in den Bibliotheken zum ausleihen bereit. Zum anderen dürften einige von denen, die das in den 90ern so gelernt haben, inzwischen Profs sein. Da sie aber (warum auch immer) nichts dazu gelernt haben, vermitteln sie das Material so, wie sie es mal gelernt haben.
So jedenfalls mal meine Vermutungen dazu.

Hans


P.S. dann fällt mir gerade noch das hier dazu ein...
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
23.10.2017, 11:00 Uhr
ao

(Operator)



Zitat von Hans:
Naja, zum einen gab es ja bis weit in die 90er Jahre Lehrbücher, die C und C++ munter gemischt haben und die stehen immer noch in den Bibliotheken zum ausleihen bereit. Zum anderen dürften einige von denen, die das in den 90ern so gelernt haben, inzwischen Profs sein. Da sie aber (warum auch immer) nichts dazu gelernt haben, vermitteln sie das Material so, wie sie es mal gelernt haben.

Das wäre aber eine unglaubliche Peinlichkeit, gerade in einem Fach wie Software, das sich technologisch so schnell entwickelt wie kaum ein anderes. Wer, wenn nicht Wissenschaftler, hat denn die Aufgabe, sich auf aktuellem Stand der Technik zu halten (und diesen vielleicht sogar aktiv weiter voranzutreiben)? Es kann doch nicht sein, dass industrielle Dünnbrettbohrer unserer Forscher-Elite hier um Jahrzehnte voraus sind, oder?

Oder ist das einfach nur eine Diskrepanz zwischen Forschung (und der damit verbundenen Reputation) und Lehre (lästiges Beiwerk, besonders in den Anfängersemestern)?


Zitat:
P.S. dann fällt mir gerade noch das hier dazu ein...

Eine Verachtung, die sich auf Vorurteilen gründet.

Leider habe ich in dem vorliegenden konkreten Fall nicht den Eindruck, dass es sich um ein Vorurteil handelt. Im Gegenteil, ich stelle diese universitäre C++-Verweigerung seit Jahren immer wieder fest. Eine Debugger-Verweigerung ebenfalls, aber hier habe ich inzwischen aufgegeben.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
23.10.2017, 14:14 Uhr
FloSoft
Medialer Over-Flow
(Administrator)



Zitat:

Leider habe ich in dem vorliegenden konkreten Fall nicht den Eindruck, dass es sich um ein Vorurteil handelt. Im Gegenteil, ich stelle diese universitäre C++-Verweigerung seit Jahren immer wieder fest. Eine Debugger-Verweigerung ebenfalls, aber hier habe ich inzwischen aufgegeben.



Dem muss ich leider zustimmen. Wenn ich mir ansehe, was meine Lebensgefährtin in der Berufschule machen musste ...
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: