#include <iostream>
class Solver; // forward declare Solver
class Parameters
{
friend class Solver; // make Solver as friend of Parameters
private:
int m_;
double dx_, eps_;
public:
Parameters(int M1, double dx1, double eps)
: m_(M1), dx_(dx1), eps_(eps)
{}
};
class Solver
{
// member variables
public:
int Solve(Parameters& obj)
{
// now you can
std::cout << obj.m_ << " " << obj.dx_ << " " << obj.eps_ << std::endl;
return obj.m_;
}
};
int main()
{
Parameters parObj(1, 2.0, 3.0);
Solver solverObj;
std::cout << "result: " << solverObj.Solve(parObj); // call the function here
std::cin.get();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgU29sdmVyOyAvLyBmb3J3YXJkIGRlY2xhcmUgU29sdmVyCgpjbGFzcyBQYXJhbWV0ZXJzCnsKCWZyaWVuZCBjbGFzcyBTb2x2ZXI7IC8vIG1ha2UgU29sdmVyIGFzIGZyaWVuZCBvZiBQYXJhbWV0ZXJzIApwcml2YXRlOgoJaW50IG1fOwoJZG91YmxlIGR4XywgZXBzXzsKcHVibGljOgoJUGFyYW1ldGVycyhpbnQgTTEsIGRvdWJsZSBkeDEsIGRvdWJsZSAgIGVwcykKCQk6IG1fKE0xKSwgZHhfKGR4MSksIGVwc18oZXBzKSAKCQl7fQoKfTsKY2xhc3MgU29sdmVyCnsKCS8vIG1lbWJlciB2YXJpYWJsZXMKcHVibGljOgoJaW50IFNvbHZlKFBhcmFtZXRlcnMmIG9iaikKCXsKCQkvLyBub3cgeW91IGNhbgoJCXN0ZDo6Y291dCA8PCBvYmoubV8gPDwgIiAiIDw8IG9iai5keF8gPDwgIiAiIDw8IG9iai5lcHNfIDw8IHN0ZDo6ZW5kbDsKCQlyZXR1cm4gb2JqLm1fOwoJfQp9OwppbnQgbWFpbigpCnsKCVBhcmFtZXRlcnMgcGFyT2JqKDEsIDIuMCwgMy4wKTsKCVNvbHZlciBzb2x2ZXJPYmo7CglzdGQ6OmNvdXQgPDwgInJlc3VsdDogIiA8PCBzb2x2ZXJPYmouU29sdmUocGFyT2JqKTsgIC8vIGNhbGwgdGhlIGZ1bmN0aW9uIGhlcmUKCXN0ZDo6Y2luLmdldCgpOwp9Cg==