Page 1 of 1

C++ ξέχασα και αυτά που ήξερα

Posted: Wed May 05, 2004 5:43 pm
by PaP
Βλέπετε κάποιο πρόβλημα στο παρακάτω;;;

Code: Select all

#ifndef _PANDORABOX_H_
#define _PANDORABOX_H

// Include an STL container needed by the Pandora program
#include <vector>

//Other includes needed
#include <iostream>
#include <fstream>
#include <string>
#include <math>

class PandoraBox{

	//Containers
	private:
		vector<char[]> vec;
		static int FibNums[];
		
	//Variables needed
		static int pass;
		static int passInc;
		static int parts;
		static bool generated;
		string password;
3 μεταγλωτιστές μου βγάζουν ότι δεν έχει δηλωθεί το string !!!
Borland, Visual Studio 6, GCC 3.3 3.2

Posted: Wed May 05, 2004 7:02 pm
by HdkiLLeR
Βασικά το έχεις σκίσει...

1)Δεν έχεις κλήσει το #ifndef.
2)Δεν έχεις δηλώσει ποιόν χώρο ονομασίας χρησιμοποιείς.
3)Vector<char[]> χλωμό σε κόβο...

Code: Select all

#ifndef _PANDORABOX_H_
#define _PANDORABOX_H

// Include an STL container needed by the Pandora program
#include <vector>

//Other includes needed
#include <iostream>
#include <fstream>
#include <string>
//#include <math>
using namespace std;

class PandoraBox{

   //Containers
   private:
      vector<char*> vec;
      static int FibNums[];

   //Variables needed
      static int pass;
      static int passInc;
      static int parts;
      static bool generated;
      string password;
};
#endif

είναι λογικότατο να μην βρίσκει τίποτα μιας και όλα αυτά βρίσκονται μέσα στο namespace std. Συνεπώς για να τα χρησιμοποιήσεις χωρίς δήλωση του namespace παραπάνω θα πρέπει να χρησιμοποιείς και τον τελεστή ανάλυσης εμβέλειας ::,πχ std::cout κλπ κλπ.

Τέλος το char[] η C++ το λαμβάνει σαν έναν δείκτη στην πρώτη θέση του πίνακα. Πχ char x[100]. To x δείχνει στην πρώτη θέση του πίνακα είναι το ίδιο με το char* point=&x[0]; Το point και το χ απο μόνα τους έχουν την ίδια τιμή για να καταλάβεις. Για να σου δουλέψει τώρα το vector θα πρέπει να του δώσεις έναν τύπο. Πχ vector<int>,vector<string>,vector<vector<int>>,vector<class1>,vector<set<class2>>...Γενικά κάτι που να αντιπροσοπεύει έναν τύπο. Το char[] δεν έιναι type οπότε θα σου χτυπήσει και εκεί.

Παραπάνω τα έχω διορθώσει όλα.

Ευτυχώς ξαναφόρτωσα το Module C++

Posted: Wed May 05, 2004 9:24 pm
by PaP
Thanx Bill. βασικά τα πρώτα λάθη τα βρήκα όλα και μείωσα σε από 55 λάθη σε 15 λεπτά αλλά αυτό με το char[] βοηθάει αρκετά. Thanx dude
Ωσονούπω γέννετο το Pandora Cipher Tool

Posted: Thu May 06, 2004 2:40 am
by HdkiLLeR
Αναμένω με αγωνία...Φτιάξε και ένα gui μιας και σε αυτά είσαι μέγιστος.

ΥΓ: θέλω credit στα σχόλια του code :)