返回除函数类型之外的其他类型变量

时间:2016-01-30 00:01:16

标签: c++ arduino

如何使用函数类型以外的其他类型返回变量?

这是我的代码:

String wyslij(String cmd, boolean parse = false) {
  wifi.println(cmd);
  String response = "";
  bool beg = false;
  if(parse == true){
    (more code but this is not important)

    JsonObject& root = jsonBuffer.parseObject(response);

    return root; //how?

  }
return wifi.readString();
}

我想返回" root",我该怎么做?

谢谢!

2 个答案:

答案 0 :(得分:1)

严格地说,你不能。为了传递而建立一个联合或一个特殊的结构可能会给你你想要的东西。这是否是个好主意取决于你的来电者在做什么。

编辑:这是单向:

String wyslij(String cmd, boolean parse = false, JsonObject * obj = NULL) {
  wifi.println(cmd);
  String response = "";
  bool beg = false;
  if(parse == true && obj != NULL){
    (*obj) = jsonBuffer.parseObject(response);
  }
  return wifi.readString();
}

void Caller() {
    JsonObject root;
    String ret_val = wyslij(cmd, true, &root);
    /* do things with root */
}

它可能不起作用,取决于制作JsonObject(除其他事项)所涉及的副作用,但它会给你一个要点。

答案 1 :(得分:0)

你不能,它违反了语言类型系统。

但是你应该能够获得一个字符串表示,例如使用root.toString()或等效的类方法