无法编译arduino代码,因为“无法将'String'转换为'int'作为返回”

问题描述 投票:0回答:1

我试图从自定义类返回一个字符串并遇到问题。我意识到我不一定需要在课堂上做这些事情,但我正在努力学习和实验。谁能告诉我为什么它试图在返回时转换为 int ?如何返回字符串?

头文件

#ifndef LIGHTBOX_H
#define LIGHTBOX_H

#include <Arduino.h>

class Lightbox
{
  private:
    String audioTrack;
  public:
    getTrack();
};

#endif

类文件

#include "Lightbox.h"
//#include "Adafruit_Soundboard.h"

Lightbox::getTrack()
{
  return audioTrack;
}

返回的错误是

Lightbox.cpp: In member function 'int Lightbox::getTrack()':
Lightbox.cpp:30:10: error: cannot convert 'String' to 'int' in return
   return audioTrack;
          ^~~~~~~~~~

exit status 1

Compilation error: cannot convert 'String' to 'int' in return

我尝试在函数中分配一个临时字符串,这看起来与发送字符串是一样的。如果没有 return (audioTrack),代码就会编译。显然,这仍然是一项正在进行的工作,我没有包含我的主 ino 文件,因为它实际上还没有任何内容。

附注我很累...

c++ compiler-errors arduino
1个回答
0
投票

在标头和源文件中将

String
设为
getTrack()
的返回类型。在这两个地方你都省略了返回类型。

#ifndef LIGHTBOX_H
#define LIGHTBOX_H

#include <Arduino.h>

class Lightbox
{
  private:
    String audioTrack;
  public:
    String getTrack();
};

#endif

在你的定义中是这样的:

String Lightbox::getTrack()
{
  return audioTrack;
}
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.