赞
踩
在C++中并没有接口回调,但是为了更好地理解,我们说成是类似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); }
我们在java中,在内部类是可以直接new 出接口然后去实现,但是在C++中是不支持的,所以我们需要自己手动写一个实现类
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。