単純なスタック実装が機能していないようです。私は単純に、2 つの異なるクラス (クラス B とクラス C) を取得して、3 番目のクラス (クラス A) によって管理されている同じスタック内の要素をプッシュおよび印刷できるようにしようとしています。
A.cpp
#include "A.h"
void A::pop() {}
void A::push() {}
void A::print() {} // prints last pushed elements
ああ
#include < iostream >
class A
{
public:
void pop();
void push();
void print();
}
B.cpp
#include "B.h"
#include "A.h"
A a;
void B::Text() { a.push(); }
void B::Background() { a.print(); } // works!
C.cpp
#include "C.h"
#include "A.h"
A _a; // why doesn't A a work? because ODR?
void B::Text() { _a.push(); }
void B::Background() { _a.print(); } // doesn't work! breakpoint shows empty stack!
私は 1 つの定義ルールを破っていると思います。私は正しいですか?