注册 登录
编程论坛 C++教室

求问程序中result哪里出错了

蛤蟆001 发布于 2016-09-25 01:28, 1968 次点击
#include<iostream>
#include<cmath>
using namespace std;
class TestClass1
{

friend  class Testclass2;
public:
    //********2********
TestClass1(float a,float b)
    {
        X=a;
        Y=b;
    }
   
TestClass1(float a)
    {
        X=a;
        Y=0;
    }
    void print()
    {
        cout<<"x="<<X<<endl;
        cout<<"y="<<Y<<endl;
    }
private:
    float X,Y;
};
class TestClass2
{
public:
    float Distance(TestClass1& p,TestClass1& q);
};
float TestClass2::Distance(TestClass1& p,TestClass1& q)
{
    float result;
   
    result=sqrt((p.X-q.X)*{p.X-q.X)+(p.Y-q.Y)(p.Y-q,Y); // error C2248: 'X' : cannot access private member declared in class 'TestClass1'
    cout<<result<<endl;
    return result;
}
int main()
{
    TestClass1 p(10,10),q(20);
    TestClass2 d;
    d.Distance(p,q);
    return 0;
}
1 回复
#2
rjsp2016-09-25 02:23
你要让TestClass2成为其友元才行,
让Testclass2成为友元有什么用,难道因为长得像就可以算作同一个人?

这种问题吧,编译器是不会骗人的,我遇到这种问题时,将两个单词拷贝出来粘贴到记事本上仔细对比。
1