Avatar billede geputzt Nybegynder
03. marts 2004 - 20:00 Der er 17 kommentarer

Klassenavne med stort begyndelsesbogstav??

Hvorfor kan jeg ikke kompilere en klasse, der har et stort begyndelsesbogstav? Hvis jeg ændrer bogstavet til et lille bogstav, fungerer det fint! Hvad er der galt?? Jeg bruger Dev-C++ som IDE, med Windows XP som platform.
Avatar billede tosssen Nybegynder
03. marts 2004 - 20:06 #1
Jeg vil gætte på at filnavnet på den fil, hvori din klasse er skrevet, er skrevet med lille. Hvis du omdøber filnavnet til at starte med stort, så burde det virke, idet der skal være overensstemmelse mellem filnavn og klassenavn
Avatar billede soreno Praktikant
03. marts 2004 - 20:14 #2
Hvilken fejl får du ?

(Der behøver ikke være overensstemmelse mellem filnavn og klassenavn i C++, men i Java skal der).
Avatar billede tosssen Nybegynder
03. marts 2004 - 20:16 #3
Hehe - der fik jeg lige bekræftet hvor træt jeg er efter en lang dag :) Jeg abbonerer også på java kategorien, så jeg antog uden at kigge efter at det var et java spg, så se venligst bort fra mit svar :
Avatar billede geputzt Nybegynder
03. marts 2004 - 20:18 #4
OK - afviser...
Avatar billede geputzt Nybegynder
03. marts 2004 - 20:18 #5
Afvist
Avatar billede geputzt Nybegynder
03. marts 2004 - 20:22 #6
Nå, nu fucker eksperten også up ;-)

Den siger: " `Polygon' undeclared (first use this function) ".

Hvis jeg ændrer klasens navn fra 'Polygon' til 'polygon' (og de steder jeg bruger klassen, selvfølgelig), så er der ingen problemer.
Avatar billede soreno Praktikant
03. marts 2004 - 20:27 #7
Hvordan ser din kode ud ?

Du deklererer klasser således:

class KlasseNavn
{
  // en masse kode
};
Avatar billede geputzt Nybegynder
03. marts 2004 - 20:31 #8
soreno >> jo, den ser således ud:
#include <vector>
#include "vector3d.h"

class Polygon {
   
private:
    std::vector<vector3d> vertices;
       
public:
    Polygon(){};
    void addVertex(const vector3d vec);
    bool isPointInFrontOf(const vector3d &vec);
};
Avatar billede soreno Praktikant
03. marts 2004 - 20:33 #9
Hvilken linie frembringer "`Polygon' undeclared (first use this function)" ?
Avatar billede geputzt Nybegynder
03. marts 2004 - 20:36 #10
Det gør den i min main metode:


int main(....) {
...
...
Polygon poly;

}
Avatar billede soreno Praktikant
03. marts 2004 - 20:37 #11
Har du husket at include polygon.h (eller hvad den nu hedder) ?
Avatar billede geputzt Nybegynder
03. marts 2004 - 20:38 #12
Og jeg har husket at inkludere "Polygon.h"...
Avatar billede geputzt Nybegynder
03. marts 2004 - 20:38 #13
Den virker fint, når blot den hedder 'polygon' ??!
Avatar billede soreno Praktikant
03. marts 2004 - 20:42 #14
Jeg kan ikke se fejlen udfra ovenstående kode, men dette lille simple eksempel virker fint:

-------------------Polygon.h
#include <vector>
//#include "vector3d.h"

class Polygon {
 
private:
//    std::vector<vector3d> vertices;
     
public:
    Polygon(){};
//    void addVertex(const vector3d vec);
//    bool isPointInFrontOf(const vector3d &vec);
};



-------------------Test.cpp
#include <iostream>
#include "Polygon.h"

using namespace std;

int main()
{
    Polygon poly;

    return 0;   
}
Avatar billede geputzt Nybegynder
03. marts 2004 - 20:44 #15
Nej, jeg forstår det heller ikke!! For såvidt jeg kan se er der ingen syntaktiske fejl. Det er kun bogstavet, der driller...
Avatar billede segmose Nybegynder
04. marts 2004 - 11:46 #16
kald din klasse PolygonX, der er garanteret noget i forvejen der hedder Polygon, hvis du vil vide hvad kan du udkommenterer 

//using namespace std;

eller lave dit eget namespace så du kan differentiere, fx.

namespace geputzt {
  class Polygon {
    // etc.
  }
}

og i test.cpp

int main() {
  geputzt::Polygon poly;

  return 0; 
}
Avatar billede geputzt Nybegynder
04. marts 2004 - 22:56 #17
Jeg benytter slet ikke std namespacet.
Så jeg tror ikke, at det kan ikke være problemet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester