Eh, vuoi mettere la comodita' di farti generare moduli (vuoti, da riempire) ed interfacce ?
anche quello Nokia, QT-coso che imputtana non poco le cose con i suoi "profili" e project templete
Quindi va bene cosi', e per il C++, boh, si presta a questo schema, manca solo la generazione delle interfacce (hai detto niente).
/**** miaclasse.cpp ****///*[BEGIN HEADER]class MiaClasse{ public: MiaClasse(); ~MiaClasse(); int getStuff(); void setStuff(int stuff); private: int stuff;};//*[END HEADER]MiaClasse::MiaClasse() { stuff = 0; }MiaClasse::~MiaClasse() {}int MiaClasse::getStuff() { return stuff; }void MiaClasse::setStuff(int a) { stuff = a; }
/* miaclasse.h *//* Extract from miaclasse.cpp *//* DO NOT EDIT */class MiaClasse{ public: MiaClasse(); ~MiaClasse(); int getStuff(); void setStuff(int stuff); private: int stuff;};
Tutti gli altri IDE che ho provato ti obbligano a organizzare il progetto come vogliono loro e ciò da molto fastidio anche a me.
Visual C++ ti consente di avere il progetto separato dai sorgenti, con o senza makefile esterno. Volendo puoi usare Visual C++ come editor e poi compilare via makefile.
I vantaggi di avere tutto in un unico modulo sono pochi rispetto a questi
Questo "Explicit Instantiation" trick sembra essere un workaround
#pragma onceclass Suca {public: int prototipo(int c, int d);};
#include "suca.h"int Suca::prototipo(int c, int d){ return c + d;}
class Complex{public: Complex& operator - (const Complex &rhs);};
Complex& Complex::operator - (const Complex &rhs) { re = Re() + rhs.Re(); im = Im() + rhs.Im(); return *this; }
ho avuto qualche problema con i const, tolti di mezzo
mah,farfugliava cose a me ancora incomprensibili, domani lo riguardo un attimo,
c'e' un casino bestia anche per capire come accidenti si implementa ++ e --, e tanta altra roba, tra cui "[]".