簡體   English   中英

從另一個類中的一個類調用方法

[英]Calling a method from one class in another class

我有這個課:

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);
}

和這個類:

aircraft.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;
}

而且我需要連接void source_forSomeFun(int id_); aicraftstd::function<void(int id_)> someFun; boer 我怎樣才能做到這一點? 也許還有另一種方法,但是我認為這種方法是最可取的。

int main()
{
    aircraft Aircraft;
    boer Boer;

    Boer.setSomeFun(???); // here

    Boer.getSomeFun();

    int i;
    std::cin >> i;
    return 0;
}
Boer.setSomeFun([&](int v){aircraft.source_forSomeFun(v);});

使用lambda。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM