Nieuws:

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

Auteur Topic: [C++] Probleem met initialiseren van struct  (gelezen 963 keer)

Offline Joshua822

  • Lid
  • Steunpunt: Nee
[C++] Probleem met initialiseren van struct
« Gepost op: 2010/09/05, 20:40:13 »
Hallo allemaal.

Ik heb een probleem met het initialiseren van een struct. Ik heb de volgende code:
struct datetime
{

    unsigned int year;
    unsigned int month;
    unsigned int day;
    unsigned int hour;
    unsigned int minute;
    unsigned int second;

} a, b;

a = { 2010, 9, 5, 19, 57, 30 };
b = { 2010, 9, 8, 19, 57, 30 };
Maar dit werkt niet. Ik compileer met de volgende opdracht:
g++ datetime.cpp -Wall -o datetime.cppEn dan krijg ik de volgende foutmeldingen:
datetime.cpp:15: error: expected constructor, destructor, or type conversion before ‘=’ token
datetime.cpp:16: error: expected constructor, destructor, or type conversion before ‘=’ token
Ik snap dit echter niet. De code ziet er gewoon correct uit.

Weet iemand wat hier misgaat? Alvast bedankt! :)

Offline Joshua822

  • Lid
  • Steunpunt: Nee
Re: [C++] Probleem met initialiseren van struct
« Reactie #1 Gepost op: 2010/09/06, 20:06:50 »
Niemand? :(

Offline Mossie

  • Lid
  • Steunpunt: Nee
Re: [C++] Probleem met initialiseren van struct
« Reactie #2 Gepost op: 2010/09/08, 14:54:25 »
Dit ligt aan het feit dat je structures alleen op deze manier kan initialiseren als je ze declareert. Dit werkt wel:
struct _st {
    int a;
    int b;
};

struct _st var = {1, 2};

Maar dit werkt niet:
struct _st {
    int a;
    int b;
};

struct _st var;
var = {1, 2};

In het tweede geval moet je var.a en var.b apart een waarde geven.

Offline SeySayux

  • Lid
    • SeySayux.net
  • Steunpunt: Nee
Re: [C++] Probleem met initialiseren van struct
« Reactie #3 Gepost op: 2010/09/08, 16:56:52 »
Hmm, je kan er rond heen werken, maar dan zit je al in C++0x (initializer_list)

Zo doet Sylph::Array het ook.

Sylph::Array ar;
ar = { 1, 2, 3, 4};
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net