Установка переменных в конструкторе с помощью этого

0

Так что я в порядке с java, но новичок в C++. Я в основном пытаюсь сделать конструктор для C++ с переданным параметром и присвоить это значение полю для этого объекта, используя this. Итак, вот что будет выглядеть в java:

//Foo fields
    private int num;

//Foo Constructor
    public Foo(int num){
    this.num = num;
    }

Как я могу использовать this для установки такой переменной в C++? Или это не вариант? Благодарю!!

Теги:
constructor
field

2 ответа

2
Лучший ответ

Используйте this->num, как в c++, это указатель, чтобы получить доступ к элементам struct/class с помощью указателя, который вы должны использовать -> вместо . между переменной и именем участника, здесь из справочника

expression  can be read as
*x          pointed by x
&x          address of x
x.y         member y of object x
x->y        member y of object pointed by x
  • 0
    Вы также можете просто использовать имена переменных класса: public Foo(int other){ num = other; }
3

C++ имеет более чистый подход, называемый инициализаторами конструктора. Вместо того, чтобы иметь много назначений, вы можете использовать этот синтаксис:

public MyClass::MyClass(int num): someVar(num), someOtherVar(0) {
    // constructor here
}

Если вы действительно хотите использовать this, помните, что в C++ this указатель, поэтому вам нужно использовать операторы разыменования указателей, так что либо

this->num = num;

или

(*this).num = num;
  • 0
    Круто, спасибо за новую информацию! Могу ли я сделать ... "MyClass (int num): num (num) {" ...?
  • 1
    @ Evorlor Да, вы можете!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню