C++ Tutorial/Function/const methods

Материал из C\C++ эксперт
Перейти к: навигация, поиск

Using pointers with const methods

<source lang="cpp">#include <iostream>

class Rectangle
{
public:
    Rectangle();
    ~Rectangle();
    void SetLength(int length) { itsLength = length; }
    int GetLength() const { return itsLength; }

    void SetWidth(int width) { itsWidth = width; }
    int GetWidth() const { return itsWidth; }

private:
    int itsLength;
    int itsWidth;
};

Rectangle::Rectangle(): itsWidth(5), itsLength(10) {}

Rectangle::~Rectangle()
{}

int main()
{
    Rectangle* pRect =  new Rectangle;
    const Rectangle * pConstRect = new Rectangle;
    Rectangle * const pConstPtr = new Rectangle;

    std::cout << "pRect width: " << pRect->GetWidth() << " feet\n";
    std::cout << "pConstRect width: " << pConstRect->GetWidth() << " feet\n";
    std::cout << "pConstPtr width: " << pConstPtr->GetWidth() << " feet\n";

    pRect->SetWidth(10);
    pConstPtr->SetWidth(10);

    std::cout << "pRect width: " << pRect->GetWidth() << " feet\n";
    std::cout << "pConstRect width: " << pConstRect->GetWidth() << " feet\n";
    std::cout << "pConstPtr width: " << pConstPtr->GetWidth() << " feet\n";
    return 0;
}</source>
pRect width: 5 feet
pConstRect width: 5 feet
pConstPtr width: 5 feet
pRect width: 10 feet
pConstRect width: 5 feet
pConstPtr width: 10 feet