I have two classes Class A
and Class B
objects, that inherits from Class C
. Class C
containts static private parameters that I would like to initialize with different values in Class A
and Class B
. Class A
and Class B
are in fact containers filled with some mathematical operations. And Class B
takes a Class A
element as argument in the constructor.
As I initialize the static private parameters of Class C
at the begining of Class A
and Class B
, I get a multiple definition of
C::m_privateParam'` error.
Please find below a scheme of the setup and some information about how the classes are implemented:
A.H
class A: public C
{
public:
Type methodsA()
private:
Type m_paramA;
}
A.CPP
#include "B.h"
#include "C.h"
Type C::m_paramC = something;
Type A::methodsA()
{
}
It is similar for Class B
without the include to B and the static parameter from C should be with different value compared to A Type C::m_paramC = something_else;
.
C.H
class C
{
public:
Template<class T>
Type C::methodsC()
{
/* use of m_paramC */
}
private:
static Type m_paramC;
}
The template<T>
in C.H allows to perform the same operations on objects from A or B. So, my question is the following: what is the best practice to link together classes on the way described above and be able to change in A and B the values of the private variables of C?
Aucun commentaire:
Enregistrer un commentaire