从另一个类中的一个类调用方法
Posted
技术标签:
【中文标题】从另一个类中的一个类调用方法【英文标题】:Calling a method from one class in another class 【发布时间】:2017-08-05 11:40:11 【问题描述】:我有这门课:
boer.h
#pragma once
#include <functional>
#include <iostream>
class boer
private:
std::function<void(int id_)> someFun;
public:
boer();
~boer();
void setSomeFun(std::function<void(int id_)> someFun_);
void getSomeFun();
;
boer.cpp
#include "boer.h"
boer::boer()
boer::~boer()
void boer::setSomeFun(std::function<void(int id_)> someFun_)
someFun = someFun_;
void boer::getSomeFun()
someFun(12345);
还有这个类:
飞机.h
#pragma once
#include <functional>
#include <iostream>
#include "boer.h"
class aircraft
private:
boer Boer;
public:
aircraft();
~aircraft();
void source_forSomeFun(int id_);
;
aircraft.cpp
#include "aircraft.h"
aircraft::aircraft()
aircraft::~aircraft()
void aircraft::source_forSomeFun(int lol_)
std::cout << "AMAZING!!!" << std::endl;
我需要将aicraft
中的void source_forSomeFun(int id_);
与boer
中的std::function<void(int id_)> someFun;
连接起来。我怎样才能做到这一点?也许还有其他方法,但我认为这种方法是最可取的。
int main()
aircraft Aircraft;
boer Boer;
Boer.setSomeFun(???); // here
Boer.getSomeFun();
int i;
std::cin >> i;
return 0;
【问题讨论】:
&aircraft::source_forSomeFun
没有合适的构造函数用于从“std::functionBoer.setSomeFun([&](int v)aircraft.source_forSomeFun(v););
使用 lambda。
【讨论】:
一些修复:Boer.setSomeFun([&](int v) Aircraft.source_forSomeFun(v););
和这项工作。谢谢!以上是关于从另一个类中的一个类调用方法的主要内容,如果未能解决你的问题,请参考以下文章
Tkinter - 在类中使用Button命令从另一个类调用函数