このフレンド宣言のどこが間違っているのか、最初のエラー メッセージ:
test.cpp: In function 'int main()':
test.cpp:34:7: error: 'void steuerung::exe_testa(testa)' is private
test.cpp:48:15: error: within this context
testa のクラス宣言のコンストラクターを削除すると、問題は解決されます。しかし、コンストラクターが必要です。誰でも私を助けてもらえますか?本当にありがとうございました。
#include <iostream>
class steuerung;
class testb;
class testa;
class testa
{
friend class steuerung;
public:
private:
double a_;
double b_;
};
class testb
{
friend class steuerung;
public:
testb(double a, double b) : a_(a), b_(b) {}
private:
double a_;
double b_;
};
class steuerung
{
friend class testa;
friend class testb;
void exe_testa(testa t_) { t_.b_++; }
//template<class t> void exe(t *t_) { std::cout << t_->a_ << std::endl; }
};
int main ()
{
std::cout << "Laeuft zumindest an.." << std::endl;
testa a;
steuerung s;
s.exe_testa(a);
return 0;
}