gpt4 book ai didi

c++ - 在类中的 lcd 对象上调用函数

转载 作者:行者123 更新时间:2023-11-30 05:42:58 30 4
gpt4 key购买 nike

目前我正在制作一个用于将自定义文本打印到 LCD 的类。

我将 lcd 对象作为构造函数中的参数传递给类。

Display.h

#ifndef Display_h
#define Display_h

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "Arduino.h"

class Display
{
public:
Display(LiquidCrystal_I2C *outsideLcd);

private:
LiquidCrystal_I2C *lcd;
};

#endif

显示.cpp

#include "Arduino.h"
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "Display.h"

Display::Display(LiquidCrystal_I2C *outsideLcd)
{
lcd = outsideLcd;
lcd.init();
lcd.clear();
lcd.print("Constructor");
}

示例.ino

#include "Display.h"
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2);

Display display(&lcd);

void setup()
{

}

void loop()
{
}

当我在构造函数中调用 lcd 对象上的函数时,不断出现这些错误。

Display.cpp: In constructor 'Display::Display(LiquidCrystal_I2C*)':
Display.cpp:16: error: request for member 'init' in '((Display*)this)->Display::lcd', which is of non-class type 'LiquidCrystal_I2C*'
Display.cpp:17: error: request for member 'clear' in '((Display*)this)->Display::lcd', which is of non-class type 'LiquidCrystal_I2C*'
Display.cpp:18: error: request for member 'print' in '((Display*)this)->Display::lcd', which is of non-class type 'LiquidCrystal_I2C*'

当我在类外使用 LCD 对象的功能时,没有问题。我是否将对象错误地传递给了类(class)?

最佳答案

lcd是指针

  lcd.init();
lcd.clear();
lcd.print("Constructor");

上面几行应该更正如下:

 lcd->init();
lcd->clear();
lcd->print("Constructor");

关于c++ - 在类中的 lcd 对象上调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30412572/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com