Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: C++ en Qt: Expected primary-expression before ',' token  (gelezen 3342 keer)

C++ en Qt: Expected primary-expression before ',' token
« Gepost op: 2010/05/13, 16:13:43 »
Ik heb de hele ochtend gewerkt aan een programma dat akkoorden kan weergeven op basis van een aangeklikte toon. Alles goed en wel, maar bij een tussentijdse compilatie stuit ik op een fout, namelijk:
akkoorden.cpp:36: error: expected primary-expression before ',' token
Het probleem is natuurlijk dat ik de fout niet zie, en ik hoop dat één van jullie me kan helpen. Wederom staat op de onderstaande website de source code:
http://stefan.ubuntu.pastebin.com/pdBKYu4i

Stefan.

P.S.: Ik weet dat het programma gecompileerd en wel nog geen enkel doel dient, maar dat volgt nog ;)

Offline Mossie

  • Lid
Re: C++ en Qt: Expected primary-expression before ',' token
« Reactie #1 Gepost op: 2010/05/14, 09:09:23 »
In Qt werk je met signals en slots. Dit is een eigen uitbreiding op C++ van de makers van Qt. Nadeel daarvan is dat ze dus niet  native ondersteund worden door de C++ standaard (en dus ook niet door de compilers). De C++ code die de signals en slots bevat moet dan ook eerst voorverwerkt worden. Dit doet 'moc', de Meta Object Compiler. moc werkt alleen op .h bestanden, dus eerst moet je de class Counter in een aparte header file zetten, natuurlijk met de nodige #inlcudes (<QObject> enzo). Ook moet je aangeven dat de class Counter met signals en slots werkt door op de eerste regel in je class 'Q_OBJECT' te zetten, zonder ';'. Dan zou het denk ik moeten werken (en anders niet natuurlijk ;)).

Mossie

Re: C++ en Qt: Expected primary-expression before ',' token
« Reactie #2 Gepost op: 2010/05/14, 15:26:35 »
Dus in een aparte headerfile:

#ifndef COUNTER
#define COUNTER
//-- klasse met Q_OBJECT bijgevoegd
#endif
Dit sla ik op als counter.h.

En dan in akkoorden.cpp:
#include "counter.h"

Edit: Inmiddels uitgevoerd, de klasse wordt zonder problemen opgemerkt en verwerkt, maar ik krijg nog steeds dezelfde foutmelding.  :|
« Laatst bewerkt op: 2010/05/14, 15:43:21 door SteefuitHeerlen »
Bezoek ook eens de Ubuntu NL IRC-kanalen! |

Re: C++ en Qt: Expected primary-expression before ',' token
« Reactie #3 Gepost op: 2010/05/15, 11:21:08 »
Euhm, je probeert het adres van 'Counter' te nemen. Echter bestaat er geen enkele instance die 'Counter' heet. Wel een klasse, maar da's geen instance.
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

Re: C++ en Qt: Expected primary-expression before ',' token
« Reactie #4 Gepost op: 2010/05/15, 13:01:58 »
En kan je me uitleggen hoe ik die instance dan kan implementeren?

Offline Mossie

  • Lid
Re: C++ en Qt: Expected primary-expression before ',' token
« Reactie #5 Gepost op: 2010/05/15, 19:31:19 »
Een instance is gewoon een soort variabele. Als je bijvoorbeeld een klasse Counter hebt en hebt in je code 'Counter x;' staan, dan is x een instance van Counter. Eigenlijk net als met het type int (en ook andere types). Als je in je code 'int x;' hebt staan, dan is x een instance van int. Alleen wordt dat dan niet instance genoemd )http://en.wikipedia.org/wiki/Instance_(programming)).
Het komt er dus op neer dat je ergens in je main() functie 'Counter cnt;' moet zetten, waarbij je 'cnt' kan vervangen door je eigen verzonnen naam.

Re: C++ en Qt: Expected primary-expression before ',' token
« Reactie #6 Gepost op: 2010/05/15, 21:56:44 »
Helaas, Mossie, ondanks je heldere uitleg...



 :|

Re: C++ en Qt: Expected primary-expression before ',' token
« Reactie #7 Gepost op: 2010/05/19, 14:03:29 »
Tja, er moet uiteraard iets zijn waar je een instance van kan nemen (klasse of builtin...)
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net