Расположение амперсанда в параметре - PullRequest
0 голосов
/ 12 февраля 2019

Я новичок в C ++ и изучаю справочный оператор и как он работает.Будет ли размещение оператора и иметь значение, будет ли он перед или позади переменной?Например:

MenuCalories&
&MenuCalories

Это файл заголовка, который будет использоваться в исходном коде, и я просто пытаюсь понять его

class MenuCalories {
  private:
    unsigned int* calories;
    size_t num;

  public:
    // constructors (default, one arg, and copy)
    MenuCalories();
    MenuCalories( unsigned int numberOfMenuItems);
    MenuCalories( const MenuCalories& original);

    // destructor
    ~MenuCalories();

    // Member function
    int calorieAtIndex( int index );
};

Я предполагаю, что содержимоеMenuCalories не изменится, но не знаю, что делает оригинал.

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

Токен & используется для трех целей: одна для создания ссылочной переменной, вторая для получения адреса памяти переменной и третья как побитовый оператор AND.

Символ & помещается сразу после типа данных, чтобы указатьчто мы создаем переменную ссылочного типа того же типа.Здесь он работает как модификатор типа.Например: int & b = a;или void func (int & b);

Когда вы используете & в RHS назначения, он выдаст адрес переменной.Как и int * p = & q;

, оператор используется перед переменной, и в соответствии с оператором, в котором он встречается, он будет передавать его значение.Размещение его после имени переменной ничего не значит.

0 голосов
/ 12 февраля 2019

Токен & используется для двух целей: одна - для создания ссылочной переменной, а вторая - для получения адреса памяти в переменной.Когда он используется в LHS присваивания, например, int & a = b;Затем создается ссылка на переменную b.Когда вы используете его в сигнатуре функции, он интерпретирует то же самое.пустое веселье (int & b);Когда вы используете & RHS назначения, он даст адрес переменной.Как и int * p = & q;

, оператор используется перед переменной, и в соответствии с оператором, в котором он встречается, он будет передавать его значение.

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