/* Teht„v„ 2.23 J„senfunktio ja yst„v„ Mahtuuko-funktioista on tehty j„senfunktioita. Ympyr„n metodit osaavat verrata mahtuvatko ne itse parametrina tuodun neli”n tai toisen ympyr„n sis„„n. Vastaavasti neli” osaa verrata mahtuuko se itse parametrina tuodun ympyr„n tai toisen neli”n sis„„n. Molempiin luokkiin on lis„tty saantimetodit. */ #include #include class cNelio; // Eteenp„in viittaus jotta void. k„yt. ympyr„ss„ class cYmpyra{ double r; // S„de public: cYmpyra(double d=1.0) { r = d; } double sr() const {return r;} // int mahtuuko(const cNelio &n) const; int mahtuuko(const cYmpyra &y2) const; // friend int mahtuuko(const cYmpyra &y, const cNelio &n); // friend cNelio; }; #if 0 int mahtuuko(const cYmpyra &y, const cNelio &n) { return ( 2*r < n.s ); } #endif class cNelio{ double s; // Sivun pituus public: cNelio(double d=1.0) { s = d; } double ss() const {return s;} int mahtuuko(const cYmpyra &y) const; int mahtuuko(const cNelio &n2) const; }; int cYmpyra::mahtuuko(const cNelio &n) const { // mahdunko min„ neli”n sis„lle return ( 2*r < n.ss() ); } int cNelio::mahtuuko(const cYmpyra &y) const { return ( sqrt(2.0)*s/2 < y.sr() ); } int cYmpyra::mahtuuko(const cYmpyra &y2) const { return ( r < y2.r ); } int cNelio::mahtuuko(const cNelio &n2) const { return ( s < n2.s ); } int main(void) { cNelio n1(2.1),n2(2.5); cYmpyra y1(0.9),y2(1.2); printf("-----------------\n"); if ( n1.mahtuuko(y1) ) printf("Neli” 1 mahtuu ympyr„n 1 sis„lle.\n"); if ( y1.mahtuuko(n1) ) printf("Ympyr„ 1 mahtuu neli”n 1 sis„lle.\n"); if ( y1.mahtuuko(y2) ) printf("Ympyr„t mahtuvat sis„kk„in.\n"); if ( n1.mahtuuko(n2) ) printf("Neli”t mahtuvat sis„kk„in.\n"); return 0; }