从返回类型为用户定义的String类的函数返回std :: string时出错

时间:2015-06-01 13:35:28

标签: c++ string

我已经在“String.cpp”(类String)中定义了我自己的字符串类,在一些返回类型为String的函数中,我试图返回std::string,但它抛出错误错误:

Cannot use std::string  to initialize PiaStd::String

请帮忙

String System::getHostName()
{
    // in between code
    std::string result;
    struct addrinfo* p;
    for(p = ppResult; p != 0; p=p->ai_next)
    {
        result += std::string(p->ai_canonname);
    }
    Freeaddrinfo(ppResult);
    return result;
}

1 个答案:

答案 0 :(得分:2)

问题是编译器不知道如何从std::string创建字符串。您需要通过编写以下内容之一来提供一种方法:

  • 创建PiaStd::String的构造函数,以const std::string&作为参数,或
  • std::stringPiaStd::String
  • 创建自定义转换运算符

您也可以更改getHostName()以制作自定义字符串,或者返回std::string