在类中调用lcd对象的函数
Call function on lcd object in class
目前我正在制作一个打印自定义文本到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
Display.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");
}
Example.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对象的函数时,没有问题。我传递对象错误的类吗?
lcd是一个指针
lcd.init();
lcd.clear();
lcd.print("Constructor");
以上几行应按如下方式更正:
lcd->init();
lcd->clear();
lcd->print("Constructor");
相关文章:
- 如何创建对象函数指针C++映射?
- 为什么我可以改变常量对象中的成员变量,这是返回常量对象函数的结果?
- 如何将对象函数的实例传递给另一个函数
- 调用模板函数的问题"No matching function for call"参数:迭代器、对象函数
- makefile对我的名称空间对象/函数/构造函数的不确定引用
- 将对象函数转换为函数指针
- 非对象函数/类函数C++
- 线程对象函数 C++
- C 将成员对象函数分配给类成员功能
- 使用基本指针调用派生对象函数
- 可以(通过编译器)使用多少个线程来初始化全局对象(函数main之前)
- C++类对象函数
- 对对象::函数的未定义引用
- 无法弄清楚将多个对象函数作为单独的线程调用的语法
- 在提升作用域出口中调用对象函数
- 使用基指针来使用派生对象函数
- 在for_each lambda 中调用对象函数
- C++:: 模板函数 - 从对象函数获取对象的地址
- Qt5 未解析的外部静态元对象函数
- 通过变量使用对象和对象函数