Har du prövat att definiera copy constructorn som:
ScriptObject(const ScriptObject &[b]ScrObj[/b])
2 svar · 451 visningar · startad av Alpha II
Jag har skapat en klass som jag kallar ScriptObject. ScriptObject innehåller en void pekare som håller ett objects data. D.v.s den skapar dynamiskt en float, integer, string eller något annat beroende på vad ScriptObject är för något. ScriptObject är också basklass till de klassers i programmet som skall kunna nås via script.
Eftersom datan som void pekaren pekar till skapas dynamiskt
måste jag ju definiera min egna kopieringskonstruktor. Det är här jag får problem. Efter att jag definierat min konstruktor som
ScriptObject(ScriptObject&)
får jag följande kompileringsfel
[...]\include\utility(34): error C2558: class 'ScriptObject' : no copy constructor available or copy constructor is declared 'explicit'
Jag använder ett flertal STL maps för att hålla koll på mina ScriptObject och det är också i STL filerna (utility) felet uppstår.
Hur fixar jag upp detta nu då? Kommenterar jag bort kopieringskonstruktorn kompilerar programmet men det blir lite andra småskumma saker då... :P
Har du prövat att definiera copy constructorn som:
ScriptObject(const ScriptObject &[b]ScrObj[/b])
const! Det var klantigt att glömma :r