C++ ostream char**

C++ ostream char**

本文关键字:char ostream C++      更新时间:2023-10-16

我建立了一个类Client,我想得到它的ostream。这是类:

class Client {
    MyString id;
    MyString full_name;
    char gender;
    unsigned short age;
    unsigned short hobbies_num;
    char** hobbies_list;

这里是我已经写过的代码:

ostream& operator<<(ostream& osc, const Client& for_print)
{
    return osc << for_print.id << endl << for_print.full_name << endl << for_print.gender << endl << for_print.age << endl << for_print.hobbies_num << endl;
}

我的问题是如何打印最后一个成员,hobbies_list,这是二维动态数组的字符?

使用for循环

for (int i = 0; i < for_print.hobbies_num; i++) {
    osc << for_print.hobbies_list[i] << endl;
}
使用标准算法std::for_each:
std::ostream& operator<<(std::ostream& osc, const Client& for_print)
{
    osc << for_print.id << endl << for_print.full_name << endl << for_print.gender << endl << for_print.age << endl << for_print.hobbies_num << endl;
    for_each(for_print.hobbies_list, for_print.hobbies_list + for_print.hobbies_num, [&](char* x){osc << x << endl; });
    return osc; 
}
相关文章: