Для начала в этом цикле
for (int i = 0; i < 1000; i++) {
double multiplier = 0.5 * (1 - cos(2*PI*i/999));
complexArray[i] = multiplier[i] * complexArray[i];
}
переменная multiplier
объявлена как скалярный объект типа double. Поэтому вам нужно написать
complexArray[i] = multiplier * complexArray[i];
вместо
complexArray[i] = multiplier[i] * complexArray[i];
Также вам нужно перегрузить operator *
для вашего класса.
Например
class Complex {
public:
Complex();
Complex(double realNum);
Complex(double realNum, double imagNum);
//Complex(double real = 0.0, double imaginary = 0.0); This avoids the 3 above?
Complex(const Complex& obj);
friend const Complex operator *( double, const Complex & );
private:
double real;
double imaginary;
};
//...
const Complex operator *( double value, const Complex &c )
{
return { value * c.real, value * c.imaginary };
}
Также условие в цикле while
while (! myfile.eof()) {
getline(myfile, line);
//...
заменяет
while ( getline(myfile, line) ) {
//...
И этот цикл
for (int i = 0; i < 1000; i++) {
double multiplier = 0.5 * (1 - cos(2*PI*i/999));
complexArray[i] = multiplier[i] * complexArray[i];
}
должен находиться вне цикла while,Например
for ( int j = 0; j < i; j++) {
double multiplier = 0.5 * (1 - cos(2*PI*i/999));
complexArray[j] = multiplier * complexArray[j];
}