Так что я в порядке с java, но новичок в C++. Я в основном пытаюсь сделать конструктор для C++ с переданным параметром и присвоить это значение полю для этого объекта, используя this
. Итак, вот что будет выглядеть в java:
//Foo fields
private int num;
//Foo Constructor
public Foo(int num){
this.num = num;
}
Как я могу использовать this
для установки такой переменной в C++? Или это не вариант? Благодарю!!
Используйте 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
C++ имеет более чистый подход, называемый инициализаторами конструктора. Вместо того, чтобы иметь много назначений, вы можете использовать этот синтаксис:
public MyClass::MyClass(int num): someVar(num), someOtherVar(0) {
// constructor here
}
Если вы действительно хотите использовать this
, помните, что в C++ this
указатель, поэтому вам нужно использовать операторы разыменования указателей, так что либо
this->num = num;
или
(*this).num = num;
public Foo(int other){ num = other; }