stray 222/in program

0

Nie wiem dlaczego wyskakuje mi taki błąd w kompilatorze stray "\222" in program.
Zamierzałem zrobić:

  • stworzyć obiekty klasy .
  • zainicjalizować je wartościami za pomocą konstruktora.
  • wyświetlić
  • zmienić atrybuty prywatne obiektu klasy punkt .
    Wiem że jest to spowodowane przez tą linijkę
 cout << p3.x() << ’\t’ << p3.y() << ’\t’ << p3.z() << endl; 
 
#include <iostream>

using namespace std;
class punkt{
private:
    float _x,_y,_z;
public:

    punkt()
    {
        _x=_y=_z=0;
    }
    punkt(float a,float b,float c)
    {
        _x=a;
        _y=b;
        _z=c;
    }
    float &x()
    {
        return _x;
    }
    float &y()
    {
        return _y;
    }
    float &z()
    {
        return _z;
    }
};
int main()
{
    punkt p1,p2(1,2,3);
    const punkt p3(1.1,2.2,3.3);
    cout << p3.x() << ’\t’ << p3.y() << ’\t’ << p3.z() << endl;
    //p1.x()=1; p1.y()=10; p1.x()=100;
    //cout << p1.x() << ’\t’ << p1.y() << ’\t’ << p1.z() << endl;
    return 0;
}
2

zamiast apostrofów masz backticki albo inne dziadostwo.

0

Użyłem " " i zaczęło wyskakiwać :
== Build: Debug in 2 (compiler: GNU GCC Compiler) ===

C:\Documents and Settings\Balti\Pulpit\Metody programowania\2\main.cpp||In function 'int main()':|
C:\Documents and Settings\Balti\Pulpit\Metody programowania\2\main.cpp|37|error: passing 'const punkt' as 'this' argument of 'float& punkt::x()' discards qualifiers [-fpermissive]|

WIem ze musze zrobic stala funkcje

 const float & x() const { return _x; } 

analogicznie dla pozostalych ale pierwszy raz się zdarzyłem by const stal po przyjmowanych argumentach przez funkcje : const float & x() **const **{ return _x; } . Czy zna ktoś jakieś zródło (najlepiej polskie) z którego mógłbym poczytać o tym (w symfonii c++ nie natrafiłem na to)

1

Generalnie const po metodzie, znaczy że nie modyfikuje ona obiektu. I tyle.
// edit
Jakbyś pytał po co to pisać, to od razu napisze, mistrzem w pisaniu ładnego kodu to nie jestem, ale zawsze fajnie wiedzieć czy funkcja modyfikuje obiekt, czy jednak nie, no i są pewne rzeczy które z constem się wiążą, przykładowo, z metody z constem nie możesz wywołać metody bez consta, taki bezpiecznik też troche.
Wiecej, szukaj tu, po polsku, raczej nic nie znajdziesz.

1 użytkowników online, w tym zalogowanych: 0, gości: 1