Я понимаю все о следующем коде, кроме этой строки
A f(){return A(i);}
В частности, я не понимаю синтаксис A(i)
. Я знаю, что он возвращает значение типа A
, но что означает i
в скобках?
Это вызов конструктора с некоторой переменной?
#include <iostream>
using namespace ::std;
class A{
public:
int j;
A(int z){j = z;}
int g(){return j;}
int operator+(A a){return a.j + j;}
};
class B{
public:
int i;
B(A a){i = a.j;}
A f(){return A(i);} // ???
A operator-(){return A(i);}
};
int main(){
A a(1);
B b = a;
a.j = b.f() + a;
b.i = a.g();
a = -b;
return 0;
}