在构造函数体中使用初始化列表中的字段

时间:2013-10-22 23:38:49

标签: c++ constructor

在下面的代码中,我有一个构造函数,它使用requests函数在初始化列表中初始化split_string向量,这是一个工作函数。 我在构造函数体中使用向量,但如果我尝试使用command line s构造请求类,则会引发分段错误。

为什么这会给我一个错误?有什么问题?

class request {
    vector<char*> requests;

    public:

    explicit request(char line[]): requests(split_string(line)) {
        cout << "THIS LINE DOES NOT PRINT" << requests[1] << endl;
    }

这是split_string代码:

vector<char*> split_string(char line[]) {
    vector<char*> vec_str;
    char* token;
    token = strtok(line, " ");

    while (token != NULL) {
        vec_str.push_back(token);
        token = strtok(NULL, " ");
    }
    for(int i = 0; i < vec_str.size(); ++i) {
        std::cout << vec_str.at(i) << std::endl;
    }
}

1 个答案:

答案 0 :(得分:2)

return中没有split_string()声明。因此,request::requests未通过正确的vector<char*>初始化。