matplotlib: как рисовать кривые с разными x и y на одном графике? [Дубликат]

Вы можете избежать ошибок компиляции, если вы удалите определения метода из файлов заголовков и пусть классы содержат только декларации методов и объявления / определения переменных. Определения методов должны быть помещены в файл .cpp (как говорится в рекомендациях по лучшей практике).

Нижняя сторона следующего решения (при условии, что вы поместили методы в файл заголовка для inline их), что методы больше не встроены в компилятор, и попытка использования ключевого слова inline создает компоновщик ошибки.

//A.h
#ifndef A_H
#define A_H
class B;
class A
{
    int _val;
    B* _b;
public:

    A(int val);
    void SetB(B *b);
    void Print();
};
#endif

//B.h
#ifndef B_H
#define B_H
class A;
class B
{
    double _val;
    A* _a;
public:

    B(double val);
    void SetA(A *a);
    void Print();
};
#endif

//A.cpp
#include "A.h"
#include "B.h"

#include <iostream>

using namespace std;

A::A(int val)
:_val(val)
{
}

void A::SetB(B *b)
{
    _b = b;
    cout<<"Inside SetB()"<<endl;
    _b->Print();
}

void A::Print()
{
    cout<<"Type:A val="<<_val<<endl;
}

//B.cpp
#include "B.h"
#include "A.h"
#include <iostream>

using namespace std;

B::B(double val)
:_val(val)
{
}

void B::SetA(A *a)
{
    _a = a;
    cout<<"Inside SetA()"<<endl;
    _a->Print();
}

void B::Print()
{
    cout<<"Type:B val="<<_val<<endl;
}

//main.cpp
#include "A.h"
#include "B.h"

int main(int argc, char* argv[])
{
    A a(10);
    B b(3.14);
    a.Print();
    a.SetB(&b);
    b.Print();
    b.SetA(&a);
    return 0;
}
11
задан Amir 10 September 2012 в 21:25
поделиться

1 ответ

Если я правильно понял ваш вопрос, вы хотите построить две вещи на одном и том же axes без совместного доступа axis. Вероятно, есть лучший способ сделать это, но вы можете установить twinx (doc) и twiny (doc) как таковые

ax # your first axes
ax_new = ax.twinx().twiny()

Который даст вам отметки по всем сторонам сюжета. ax будет зависеть от нижней и левой сторон, ax_new будет зависеть от верхнего и правого.

19
ответ дан tacaswell 29 August 2018 в 02:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: