实现
在C++中并没有接口回调,但是为了更好地理解,我们说成是类似Java中的接口回调
全虚函数—>Java抽象类
.h文件
#ifndef UNTITLED_ILOGIN_H
#define UNTITLED_ILOGIN_H
#include <iostream>
#include "User.h"
using namespace std;
class ILogin{
public:
virtual void success(int code, string message, User &user) = 0;
virtual void fail(int code, string message)=0;
};
#endif //UNTITLED_ILOGIN_H
实现类
.h文件
#ifndef UNTITLED_LOGIN_H
#define UNTITLED_LOGIN_H
#include "ILogin.h"
class Login:public ILogin {//公开继承ILogin接口
public:
void success(int, string, User &);
void fail(int, string);
};
#endif //UNTITLED_LOGIN_H
.cpp文件
#include "Login.h"
void Login::success(int code, string message, User & user) {
cout << "返回过来的代码: " << code << " 我是返回的消息 : " <<message<< " 我是用户消息 : " << user.getName() << endl;
}
void Login::fail(int code,string message)
{
cout << "返回过来的代码: " << code << " 我是返回的消息 : " << message << endl;
}
main函数
#include <iostream>
#include "ILogin.h"
#include "User.h"
#include "Login.h"
using namespace std;
void login(string name, string pwd,ILogin &iLogin){
if (name == "fengjiazhen" && pwd == "123456") {
User user("fengjiazhen", "123");
iLogin.success(200, "恭喜你登录成功", user);
}
else{
iLogin.fail(400, "密码错误");
}
}
int main() {
string name;
string pwd;
cout << "请输入用户名 ";
cin >> name;
cout << "请输入密码 ";
cin >> pwd;
Login login1;
login(name, pwd, login1);
}