используя операторы внутри класса или структуры? - PullRequest
1 голос
/ 02 апреля 2012

ОК, поэтому я работаю над некоторой игровой логикой, я провел немало исследований (насколько позволяет интернет) и до сих пор не имею четкого понимания класса и структуры, поэтому, пожалуйста, будьте осторожны!

По сути, я хочу иметь возможность создать объект со всеми свойствами в одной строке, т.е.

object a{1, 1, 50, 15, 5}; // create object a 

и я хочу, чтобы некоторые дополнительные вещи были составлены так:

class object
{
public:
int x;
int y;
int h;
int w;
int s;
int x1;
int y1;
int ps;
int ns;
int x1 = x + w;
int y1 = y + h;
int ps = 0 + s;
int ns = 0 - s;
};

1 Ответ

0 голосов
/ 02 апреля 2012

Я не знаю, с каким языком вы работаете, но он немного похож на C ++, поэтому вот пример:

class Rect
{
    public:
        int x, y;
        int w, h;
        int right, bottom;

        // This method is called a constructor.
        // It allows you to perform tasks on
        // the instantiation of an object.
        Rect(int x_, int y_, int w_, int h_)
        {
            // store geometry
            this->x = x_;
            this->y = y_;
            this->w = w_;
            this->h = h_;

            // calculate sides
            this->right = x_ + w_;
            this->bottom = y_ + h_;
        }
};

// You use the constructor in your main() function like so:
Rect myObject(1, 1, 50, 15);

// And you can access the members like so:
myObject.x = 10;
myObject.right = myObject.x + myObject.w;

Вы не можете использовать операторы внутри определения класса, как вы предложили в своем вопросе. Операции над переменными должны выполняться внутри конструктора (или другого метода).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...