今天突然冒出一种想法,看看自己到底理解不理解平时对各种按钮实现监听的过程,就用c++简单实现了一下!
首先是写一个抽象的Listener类,java中有接口,C++中就只能使用抽象类了。
Listener类的.h文件,只需要看.h即可,因为在.cpp中没有需要实现的方法。
#ifndef LISTENER_H
#define LISTENER_H
#include "Button.h"
class Button; //需要使用button类 因为在点击的时候会获取Button对象
// 因为Button类中也要使用Listener类,如果仅仅互相包含头文件会报错
class Listener
{
public:
Listener();
virtual ~Listener();
virtual void onClicked(Button button)=0; //onClicked事件,需要在派生类中重写
};
#endif // LISTENER_H
Button类的.h文件
#ifndef BUTTON_H
#define BUTTON_H
#include "Listener.h"
class Listener;
class Button //这个例子就是模仿,所以Button类没有继承类似View的基类
{
public:
Button();
~Button();
int getId();//获取Button的ID
void setId(int id);//设置Button的ID
void setOnClickListener(Listener *p);/