в моем проекте c ++ у меня есть класс с двумя участниками. член массива char, с которым у меня проблемы.
class frame_message
{
public:
explicit frame_message(const unsigned int id, const char data[]) :id_(id), data_{ *data }{};
// only the first char 'a' is copied to `data_`
char* get_data() { return data_; };
void get_data(char** data) { *data = data_; };
private:
unsigned int id_; char data_[8];
};
Теперь из метода main я хочу отправить еще один массив символов, используемый для инициализации массива классов.
main
{
char data[8]={'a','b','c'} // indexs 3 to 7 are '\0'
char data2[8];
char data3[8];
frame_message myMessage(0xF004,data); // the data is passed as "abc"
data2 = myMessage.get_data(); // analysis error
myMessage.get_data(&data3); // runtime exception
}
Как мне инициализировать закрытый член класса именно тем массивом данных, который отправляется в конструктор?
также для get_data
функций, какой тип данных должен быть передан?
p.s. Я новичок в c / c ++ и все же путаюсь в указателях, ссылках и особенно char
и char*