Hilfe! Ich bin neu in C++ ... Wie kann ich diese Header-Datei reparieren?C++ - Fehler: erwartet ein '{'
#pragma once
class MyCls2
{
private:
int _i, _j;
public:
MyCls2(int i, int j) : _i(i),
_j(j)
MyCls2(); // error: expected a '{'
~MyCls2(void);
};
Dies ist der Fehler in MS VC 2010:
error: expected a '{'
Danke für die Hilfe, habe ich, was ich will jetzt:
.h:
#pragma once
class MyCls2
{
private:
int _i, _j;
public:
MyCls2(int i, int j) ;
MyCls2();
~MyCls2(void);
};
.cpp:
#include "StdAfx.h"
#include "MyCls2.h"
MyCls2::MyCls2()
{
}
MyCls2::MyCls2(int i, int j) : _i(i),
_j(j)
{
}
MyCls2::~MyCls2(void)
{
}
schnell Erstaunlicher ... Dank ... aber es ist nur die Header-Datei, so dass ich davon ausgehen, es nicht eine Funktion Körper haben sollte? –
Nein, Header-Dateien können einen Inlined-Funktionskörper haben, und Ihre Syntax ist eine implizit inline-Konstruktorfunktion. –
@im_chc: Wenn Sie den Konstruktor nicht in der Kopfzeile definieren wollen, müssen Sie nur 'MyCls2 (int i, int j);'. Fügen Sie die Initialisierungsliste zusammen mit dem Rumpf des Konstruktors in die Implementierungsdatei ein (auch wenn sie leer ist). Aber es ist nichts falsch daran, den Konstruktor in der Kopfzeile zu haben, besonders wenn es sehr kurz ist. – Mat