/* FRIEND2.CPP */ /* Esimerkiss„ tehd„„n funktiot, jotka kertovat mahtuuko ympyr„ neli””n ja p„invastoin. Toteutus yst„v„luokan avulla. */ #include #include class cNelio; // Eteenp„in viittaus jotta void. k„yt. ympyr„ss„ class cYmpyra{ friend cNelio; double r; // S„de public: cYmpyra(double d=1.0) { r = d; } int mahtuuko(const cNelio &n) const; int mahtuuko(const cYmpyra &y2) const { return ( r < y2.r ); } }; class cNelio{ double s; // Sivun pituus friend cYmpyra; public: cNelio(double d=1.0) { s = d; } int mahtuuko(const cYmpyra &y) const { return ( sqrt(2.0)*s/2 < y.r ); } int mahtuuko(const cNelio &n2) { return ( s < n2.s ); } }; int cYmpyra::mahtuuko(const cNelio &n) const { return ( 2*r < n.s ); } int main(void) { cNelio n1(2.1),n2(2.5); cYmpyra y1(0.9),y2(1.2); if ( n1.mahtuuko(y1) ) cout << "Neli” 1 mahtuu ympyr„n 1 sis„lle.\n"; if ( y1.mahtuuko(n1) ) cout << "Ympyr„ 1 mahtuu neli”n 1 sis„lle.\n"; if ( y1.mahtuuko(y2) ) cout << "Ympyr„t mahtuvat sis„kk„in.\n"; if ( n1.mahtuuko(n2) ) cout << "Neli”t mahtuvat sis„kk„in.\n"; return 0; }