Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [C++] Ereditarietà

  1. #1

    [C++] Ereditarietà

    Ciao, sto sudiando il cast dei puntatori da una classe base ad una derivata ma non ho capito il seguento codice:

    Codice PHP:
    class Point {
       
    friend ostream &operator<<( ostream &, const Point & );
    public:
       
    Pointint 0int );      // default constructor
       
    void setPointintint );      // set coordinates
       
    int getX() const { return x; }  // get x coordinate
       
    int getY() const { return y; }  // get y coordinate
    protected:         // accessible by derived classes
       
    int xy;       // x and y coordinates of the Point
    };


    class 
    Circle : public Point {  // Circle inherits from Point
       
    friend ostream &operator<<( ostream &, const Circle & );
    public:
       
    // default constructor
       
    Circledouble r 0.0int x 0int y );

       
    void setRadius( double );   // set radius
       
    double getRadius() const;   // return radius
       
    double area() const;        // calculate area
    protected:
       
    double radius;
    };


    Point::Pointint aint b ) { setPointa); }
    Circle::Circledouble rint aint b )
       : 
    Pointa)       // call base-class constructor
    setRadius); }

    int main()
    {
       
    Point *pointPtr 0p3050 );
       
    Circle *circlePtr 0c2.712089 );
       
    cout << "Point p: " << << "\nCircle c: " << << '\n';
    ...

    Per motivi di spazio ho lasciato le altre funzioni membro, quello che io non ho capito è:

    Point *pointPtr = 0, p( 30, 50 );
    Circle *circlePtr = 0, c( 2.7, 120, 89 );
    cout << "Point p: " << p << "\nCircle c: " << c << '\n';

    Qualcuno sa spiegarmi la chiamata del puntatore e cosa significano c e p?


    Grazie

  2. #2
    Risolto

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    305
    ho copiato il codice per provarlo ma da questo errore:



    StudioC.obj : error LNK2001: unresolved external symbol "class ostream & __cdecl operator<<(class ostream &,class Circle const &)" (??6@YAAAVostream@@AAV0@ABVCircle@@@Z)
    StudioC.obj : error LNK2001: unresolved external symbol "class ostream & __cdecl operator<<(class ostream &,class Point const &)" (??6@YAAAVostream@@AAV0@ABVPoint@@@Z)
    StudioC.obj : error LNK2001: unresolved external symbol "public: void __thiscall Point::setPoint(int,int)" (?setPoint@Point@@QAEXHH@Z)
    StudioC.obj : error LNK2001: unresolved external symbol "public: void __thiscall Circle::setRadius(double)" (?setRadius@Circle@@QAEXN@Z)
    Debug/StudioC.exe : fatal error LNK1120: 4 unresolved externals
    Error executing link.exe.

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    305
    ho copiato il codice per provarlo ma da questo errore:



    StudioC.obj : error LNK2001: unresolved external symbol "class ostream & __cdecl operator<<(class ostream &,class Circle const &)" (??6@YAAAVostream@@AAV0@ABVCircle@@@Z)
    StudioC.obj : error LNK2001: unresolved external symbol "class ostream & __cdecl operator<<(class ostream &,class Point const &)" (??6@YAAAVostream@@AAV0@ABVPoint@@@Z)
    StudioC.obj : error LNK2001: unresolved external symbol "public: void __thiscall Point::setPoint(int,int)" (?setPoint@Point@@QAEXHH@Z)
    StudioC.obj : error LNK2001: unresolved external symbol "public: void __thiscall Circle::setRadius(double)" (?setRadius@Circle@@QAEXN@Z)
    Debug/StudioC.exe : fatal error LNK1120: 4 unresolved externals
    Error executing link.exe.

    probabilmente è questa la riga:
    friend ostream &operator<<( ostream &, const Point & );
    ..... e comunque non l'ho capita

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.