[Kendall]
04-05-2012, 09:31
Salve ragazzi, apro questo thread a mo di "sondaggio" e scambio opinioni.
Sono parecchi mesi che programmo in c++ e spesso e volentieri uno strumento valido per l'apprendimento è stato per me il leggere listati altrui, capirne i concetti, le tecniche, il design, e quant'altro. Una cosa che spesso ho notato è la varietà di stili nello stendere i file header, cosa che può aiutare o rendere difficoltosa la lettura, e nel caso di codice reso disponibile ad altri è un fattore direi più che importante.
Ma arriviamo alla domanda: voi tendete a raggruppare tutto sotto sezioni fisse (public, private e se presente protected) o dividete il codice per aree tematiche piuttosto che per visibilità? Un esempio di quest'ultimo concetto potrebbe essere questo listato:
#ifndef KCHRONO_H
#define KCHRONO_H
#include <ctime>
#include <string>
namespace KsLib
{
class KChrono
{
// Enumerators & Statics
public:
enum ChronoStatus {Pause, Forward, Backward};
enum ChronoType {Clock, Countdown};
enum ChronoFormat {HMS, HMSC};
constexpr static double CLOCKS_PER_MS = CLOCKS_PER_SEC / 1000.0;
// Fields & Fields Interfaces
private:
ChronoStatus _status;
clock_t _tickCount;
clock_t _initialValue;
clock_t _endValue;
bool _endFlag;
public:
void setEndValue(const long seconds);
clock_t getEndValue() const;
clock_t getTickCount() const;
// Constructors
public:
KChrono();
KChrono(const long seconds);
// Class Methods
public:
void forward();
void backward();
void pause();
void reset(const long seconds = 0);
bool EndReached() const;
std::string ToString(ChronoType chronoType, ChronoFormat chronoFormat) const;
}; // class KChrono
} // namespace KsLib
#endif // KCHRONO_H
Lo so, non è un concetto fondamentale il design degli header (visto che al compilatore non cambia una ceppa), però son curioso di conoscere i vostri personali stili.
Sono parecchi mesi che programmo in c++ e spesso e volentieri uno strumento valido per l'apprendimento è stato per me il leggere listati altrui, capirne i concetti, le tecniche, il design, e quant'altro. Una cosa che spesso ho notato è la varietà di stili nello stendere i file header, cosa che può aiutare o rendere difficoltosa la lettura, e nel caso di codice reso disponibile ad altri è un fattore direi più che importante.
Ma arriviamo alla domanda: voi tendete a raggruppare tutto sotto sezioni fisse (public, private e se presente protected) o dividete il codice per aree tematiche piuttosto che per visibilità? Un esempio di quest'ultimo concetto potrebbe essere questo listato:
#ifndef KCHRONO_H
#define KCHRONO_H
#include <ctime>
#include <string>
namespace KsLib
{
class KChrono
{
// Enumerators & Statics
public:
enum ChronoStatus {Pause, Forward, Backward};
enum ChronoType {Clock, Countdown};
enum ChronoFormat {HMS, HMSC};
constexpr static double CLOCKS_PER_MS = CLOCKS_PER_SEC / 1000.0;
// Fields & Fields Interfaces
private:
ChronoStatus _status;
clock_t _tickCount;
clock_t _initialValue;
clock_t _endValue;
bool _endFlag;
public:
void setEndValue(const long seconds);
clock_t getEndValue() const;
clock_t getTickCount() const;
// Constructors
public:
KChrono();
KChrono(const long seconds);
// Class Methods
public:
void forward();
void backward();
void pause();
void reset(const long seconds = 0);
bool EndReached() const;
std::string ToString(ChronoType chronoType, ChronoFormat chronoFormat) const;
}; // class KChrono
} // namespace KsLib
#endif // KCHRONO_H
Lo so, non è un concetto fondamentale il design degli header (visto che al compilatore non cambia una ceppa), però son curioso di conoscere i vostri personali stili.