求教,用Eclipse编程报错

2014-03-041.3万
AI 快速预览详细 收起
本文介绍了在Eclipse中编写Arduino库时遇到的"Member declaration not found"错误。通过具体的类定义和函数实现代码,帮助开发者解决编程报错问题。适用于使用Eclipse进行Arduino开发的用户。
准备写个库,在头文件里定义里类,在cpp文件里准备写类的函数,但是Eclipse总是报错,不清楚什么原因。两个文件都include了Arduino.h
头文件里类定义
class GPSDATA {
public:

        initgps();
};

CPP文件里函数
GPSDATA::initgps(int _rx,int _tx){
        SoftwareSerial SS(_rx,_tx);
        SS.begin(9600);
        }

在这个函数前总是报告Member declaration not found,这是什么原因造成的?

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(4)
Leotower
Leotower
解决就好,看eclipse论坛,之前某版本有这个问题。 在eclipse上发现问可以google或上相应论坛,排除版本bug:)
wonderboy
wonderboy
作者
回复Leotower
因为最早安装的是juno版,没注意,后来升级了版本,本身也是二把刀的水平,又不知道近期的C++标准变化,所以都不知道是自己的问题还是什么原因。因为Arduino IDE本身对C++的支持是不严格的,类似把类、函数写在后边之类的,所以觉得程序应该没有什么问题。反正下次出问题先查C++标准了,花了128元买了本C++ Primer当参考书了!
Angleo
Angleo
Class 最后应该需要“;”结束吧?
而且这种定义本身我感觉是有问题的。把一个类实例化里面所需要的参数一定需要为常数。
如果是我的话我会这么玩:
[align=left][font=Consolas]SoftwareSerial gps_ss(2,3);[/font][/align]
[align=left][font=Consolas]class GPS {[/font][/align]
[align=left][font=Consolas]public:[/font][/align][align=left][font=Consolas] GPS(SoftwareSerial* the_gps_ss);[/font][/align]
[align=left][font=Consolas]};[/font][/align]
[align=left][font=Consolas]GPS(&gps_ss);[/font][/align]
[table]
[tr][/tr]
[/table]
lisper
lisper
成员函数的名字和参数类型都一样时才代表是同一个成员函数
Leotower
Leotower
initgps() 与 initgps(int _rx,int _tx) 是不同的成员,其参数不同; 因此initgps(int _rx,int _tx) 是未声明的。 建议看一下面向对象的函数重载。
wonderboy
wonderboy
作者
回复Leotower
这个,怎么说呢。昨天更新了Eclipse CDT之后,今天不报错了!:L
Leotower
Leotower回复wonderboy
建议到eclipse论坛交流一下, http://www.eclipse.org/forums/index.php/t/461301/
共3条回复,已加载2条,点击查看更多共3条回复,已加载全部
- 没有更多了 -