Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] error: request for member 'wczytaj' in 'pkt1', which is of non-class type 'Punkt()'

Ostatnio zmodyfikowano 2016-07-16 22:05
Autor Wiadomość
adms
Temat założony przez niniejszego użytkownika
[C++] error: request for member 'wczytaj' in 'pkt1', which is of non-class type 'Punkt()'
» 2016-07-16 21:43:10
Na samym początku naznaczam, że jest to mój pierwszy temat na tym forum. Jeżeli w jakikolwiek sposób jest niespójny z regulaminem - z góry przepraszam.
Tworzę swój pierwszy program z wykorzystaniem funkcji zaprzyjaźnionych. Ma on za zadanie sprawdzać czy punkt o podanych współrzędnych znajduje się w podanym prostokącie. Jednakże przy kompilacji pojawia się następujący error:

error: request for member 'wczytaj' in 'pkt1', which is of non-class type 'Punkt()'|
error: request for member 'wczytaj' in 'p1', which is of non-class type 'Prostokat()'|

main.cpp
C/C++
#include <iostream>
#include "spis.h"
using namespace std;

void sedzia( Punkt pkt, Prostokat p )
{
    if(( pkt.x >= p.x ) &&( pkt.x <= p.x + p.szer ) &&( pkt.y >= p.y ) &&( pkt.y <= p.y + p.wys ) )
    {
        cout << endl << "Punkt " << pkt.name << " nalezy do prostokata: " << p.name;
    }
    else
    {
        cout << endl << "Punkt " << pkt.name << " lezy POZA prostokatem: " << p.name;
    }
   
   
}

int main()
{
    Punkt pkt1();
    pkt1.wczytaj();
    Prostokat p1();
    p1.wczytaj();
   
    sedzia( pkt1, p1 );
    return 0;
}

friends.cpp
C/C++
#include <iostream>
#include "spis.h"
using namespace std;

Punkt::Punkt( string n, int xx, int yy )
{
    name = n;
    x = xx;
    y = yy;
}

void Punkt::wczytaj()
{
    cout << "Nazwa: "; cin >> name;
    cout << "Wspolzendne x punktu: "; cin >> x;
    cout << "Wspolzendne y punktu: "; cin >> y;
}

Prostokat::Prostokat( string n, int xx, int yy, int sz, int wy )
{
    name = n;
    x = xx;
    y = yy;
    szer = sz;
    wys = wy;
}

void Prostokat::wczytaj()
{
    cout << "Nazwa: "; cin >> name;
    cout << "Wspolzendne x lewego dolnego naroznika: "; cin >> x;
    cout << "Wspolzendne y lewego dolnego naroznika: "; cin >> y;
    cout << "Szerokosc prostokata: "; cin >> szer;
    cout << "Wyskokosc prostokata: "; cin >> wys;
}

spis.h
C/C++
#include <iostream>

using namespace std;

class Prostokat;
class Punkt
{
private:
    string name;
    int x;
    int y;
public:
    Punkt( string = "A", int = 0, int = 0 );
    void wczytaj();
    friend void sedzia( Punkt pkt, Prostokat p );
};

class Prostokat
{
private:
    string name;
    int x;
    int y;
    int szer;
    int wys;
public:
    Prostokat( string = "Prostokat", int = 0, int = 0, int = 1, int = 1 );
    void wczytaj();
    friend void sedzia( Punkt pkt, Prostokat p );
};
P-150044
Gibas11
» 2016-07-16 21:52:12
Punkt pkt1();
Prostokat p1();

To deklaracje funkcji, wywal nawiasy.

//edit
Btw prostokąt powinien mieć funkcję „zawiera” albo coś, przyjmującą jeden parametr – punkt.
P-150045
adms
Temat założony przez niniejszego użytkownika
» 2016-07-16 22:05:29
dzięki wielkie
P-150047
« 1 »
  Strona 1 z 1