perdonami... hai ragione non sono stato molto chiaro!!
allora la mia prima classe è questa:
codice:
class ps_configure_module {
public:
static sc_core::sc_trace_file *tf;
// The constructor of the class
ps_configure_module(string);
// The distructor of the class
~ps_configure_module();
ouble> parameter;
};
nel file cpp ho inserito questo:
codice:
sc_core::sc_trace_file * ps_configure_module::tf= sc_core::sc_create_vcd_trace_file("energy");
ora ho la necessità all'interno del costruttore della classe di creare un altro oggetto della seguente classe:
codice:
class ps_for_all_parsing {
public:
std::map<string, ps_for_all_parsing>::iterator map_for_all_parsing_iterator;
// utility
string operator_type_for_all;
string data_type_for_all;
int model_for_all;
vector<double> parameter_for_all;
sc_core::sc_trace_file *tf_for_all;
// constructor
ps_for_all_parsing(string operator_type, string data_type, int model, vector<double> parameter, sc_core::sc_trace_file * tf){
operator_type_for_all = operator_type;
data_type_for_all = data_type;
model_for_all = model;
parameter_for_all = parameter;
*tf_for_all = *tf;
}
// distructor
~ps_for_all_parsing(){};
};
in questo modo:
codice:
tmp_string2 = ( data_type + " " + operator_type);
std::pair<string,ps_for_all_parsing> tmppairfa(tmp_string2, ps_for_all_parsing(operator_type, data_type, model, parameter, tf));
ps_power_module::get_for_all_table().insert(tmppairfa);
dove tf è il puntatore statico della prima classe!
ora in questo modo in esecuzione da errore dicendo segmentation fault! se invece metto static il membro tf_for_all della seconda classe il tutto funziona... perchè?!?!?!?!!?
grazie
Marco