Create a constructor with default parameters for some structs

Structs and classes in C++ are basically the same thing and we want to
create a few zero-initialized values for some of them; Sadly, C++ doesn't
have the nice static struct initialization that C has.

One way to deal with that is to create a constructor and pass default
values to it, another is lambda-initialization, but we don't use C++11,
yet.

Since we initializate stuff on the constructor, we don't need to
re-initializate things again on the initialization list (which is also why
I removed the QStrings from the initialization lists, they are
automatically initialized to empty)

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Tomaz Canabrava 2016-03-06 19:40:57 -03:00 committed by Dirk Hohndel
parent 2745beca5f
commit f25dce8511
3 changed files with 16 additions and 37 deletions

View file

@ -1,32 +1,19 @@
#include "devicedetails.h"
// This can probably be done better by someone with better c++-FU
const struct gas zero_gas = {0};
const struct setpoint zero_setpoint = {0};
gas::gas(unsigned char oxygen, unsigned char helium, unsigned char type, unsigned char depth) :
oxygen(oxygen), helium(helium), type(type), depth(depth)
{
}
setpoint::setpoint(unsigned char sp, unsigned char depth) :
sp(sp), depth(depth)
{
}
DeviceDetails::DeviceDetails(QObject *parent) :
QObject(parent),
data(0),
serialNo(""),
firmwareVersion(""),
customText(""),
model(""),
syncTime(false),
gas1(zero_gas),
gas2(zero_gas),
gas3(zero_gas),
gas4(zero_gas),
gas5(zero_gas),
dil1(zero_gas),
dil2(zero_gas),
dil3(zero_gas),
dil4(zero_gas),
dil5(zero_gas),
sp1(zero_setpoint),
sp2(zero_setpoint),
sp3(zero_setpoint),
sp4(zero_setpoint),
sp5(zero_setpoint),
setPointFallback(0),
ccrMode(0),
calibrationGas(0),