Передача класса в функцию в c++

144
22 июля 2017, 07:34
#include <iostream>
using namespace std;
class Example {
  public:
    int grid[30][30];
    Example();
    void someChange();
};
void someFunction (Example);
int main() {
    Example m;
    m.someChange();
    cout << m.grid[3][3] << endl;
    someFunction(m);
    cout << m.grid[3][3];
    return 0;
}
Example::Example() {
    for (int i = 0; i < 30; ++i)
        for (int j = 0; j < 30; ++j)
            grid[i][j] = 1;
}
void Example::someChange() {
    ++grid[3][3];
}
void someFunction(Example m) {
    m.someChange();
}

Как нужно передать класс в функцию someFunction(Example), чтоб при её вызове элемент m.grid[3][3] изменился?

Answer 1

Передать его по ссылке:

#include <iostream>
using namespace std;
class Example {
  public:
    int grid[30][30];
    Example();
    void someChange();
};
void someFunction(Example &m) {
    m.someChange();
}
int main() {
    Example m;
    m.someChange();
    cout << m.grid[3][3] << endl;
    someFunction(m);
    cout << m.grid[3][3];
    return 0;
}
Example::Example() {
    for (int i = 0; i < 30; ++i)
        for (int j = 0; j < 30; ++j)
            grid[i][j] = 1;
}
void Example::someChange() {
    ++grid[3][3];
}
READ ALSO
Определить в Jquery (Обработчик событии) когда создается scrolling прокрутка

Определить в Jquery (Обработчик событии) когда создается scrolling прокрутка

Есть обработчик onscrollСобытие onscroll происходит, когда элемент прокручивается

257
Как запустить таймер, а потом отключить его?

Как запустить таймер, а потом отключить его?

Есть событие <button onclick='start()'>Старт</button> и <button onclick='stop()'>Стоп</button>

273