class Vektor {
private:
double *ap;
int len;
public:
Vektor() : ap(0),len(0) { }
Vektor(int n): len(n) { ap = new double [n]; }
double& front() { return ap[0]; }
double front() const { return ap[0]; }
};
int main()
{
int n;
cout << "n: "; cin >> n;
Vektor a(n);
a.front() = 5;
cout << "a.front()=" << a.front() << endl;
return 0;
}
Я смущен использованием указателя ap
в этом коде. По определению конструктора ap
, освобождая стандартный конструктор, указывает на область памяти в куче, которая содержит n
двойные переменные. Конечно, если я хочу вернуть любое значение для front()
, мне нужно будет определить
double front() const { return ap*[0];}
и
double& front() { return ap*[0];}
а не так, как это определено выше, верно? Или double* ap
просто способ объявить массив ap
?