您当前的位置:主页 > 教程合集 > 网站建设 > 网站首页网站建设
C++交差调用与C++互相引用的方法
发布时间:2021-02-26 10:07:14编辑:余斗阅读:(0)字号: 大 中 小
这个项目是一个机器人自动购买耐克鞋系统(也可以说是一个自动抢鞋系统),需要把某网站的一个JS文件内容用C++改写过来。改写需要尽量的保持原貌,并且适应的添加周边方法,所以我才这么犟。
改写建了两个类(其它类就不说了),Document 类和 Window 类,没有继承关系,但是要把 Document 实例装载到 Window 实例中,而且 Document 实例还有某一方法需要通过 Window 指针来访问其某些属性,这就交差了。
通过在网上查找,了解了一些理论,又通过编译报错,一点点修改,最终实现了C++交差调用、C++互相引用,特此记录:
Document.h
#ifndef NIKE_DOCUMENT_H
#define NIKE_DOCUMENT_H
class Window; // 这里是重点(一)
#incluce <iostream>
#include <cstring>
class Document {
Window *m_window;
public:
Document();
int documentMode();
};
#endif //NIKE_DOCUMENT_H
Document.cpp
#include "Document.h"
#include "Window.h" // 这里是重点(二)
Document::Document() {
// ......
}
int Document::documentMode() {
std::string s = this->m_window->run();
std::transform(s.begin(), s.end(), s.begin(), ::tolower); // 全部转为小写
std::string::size_type idx = s.find("msie"); // MSIE
return idx != std::string::npos ? 11 : 0;
}
Window.h
#ifndef NIKE_WINDOW_H
#define NIKE_WINDOW_H
class Document; // 这里是重点(三)
#include <iostream>
#include <cstring>
class Window {
Document m_document;
std::string userAgent;
public:
Window();
std::string run();
};
#endif //NIKE_WINDOW_H
Window.cpp
#include "Window.h"
Window::Window() {
};
std::string Window::run() {
return userAgent;
}
编译(t_Window.cpp是测试入口文件):
g++ t_Window.cpp ../src/*.cpp -o t_Window.exe
大致就是这么个意思吧,就不按原项目的方法去写了。
关键字词:C++