metody w klasach

0

cześć
niestety, dopiero zaczynam z klasami, ale chcę się nauczyć na własnych błędach, bo to najlepsza szkoła. piszę program - przykładowy - użytkownik podaje, ile wartości tangensów chce wpisać, po czym wpisywane są one do vectora. następnie tworzę klasę, która ma obliczać wartości kątów dla podanych tangensów, po czym wypisywać w mainie. poniżej kod, bardzo prosiłbym o poprawki, najlepiej z komentarzem :) wiem, że kod jest słabej jakości.

//wczytywanie tangensow, obliczanie ctg i katow
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;


class arctan
	{ 
	public:
	float foo(vector <int> &ve);
	};

float arctan::foo(vector <int> &ve)
		{
			int j;
		ve[j] = atan(ve[j]);
		
		}	


int main()
{
	int i = 0;
	int ile;
	float tangens;
	vector <int> ve;
	
	cout <<"ile tangensow chcesz podac? ";
	cin >> ile;
	cout << endl;
	
	for (i = 0; i < ile; i++)
	{
	cin >> tangens;
	ve.push_back(tangens);
	}
	

	for (i=0; i<ile; i++)
	{
	arctan arctan[i];
	cout << arctan[i].foo (ve); 
	cout << endl;
	}
	
	
	
	system("pause");
	return 0;
}

 
0

Przecież to w ogóle jest źle.

float arctan::foo(vector < int > & ve) {
	int j;
	ve[j] = atan(ve[j]);

}

Tutaj j jest wartością niezainicjalizowaną, a ty później tego używasz, jest to UB. Bardzo niebezpieczne, jednak w wypadku vectora pewnie cudów nie będzie. Dalej nie będę wymieniał, bo sensu nie ma.
Zupełnie w błędny sposób podchodzisz do pojęcia obiektów. Nie ucz się na własnych błędach tylko poczytaj o klasach, bo na razie wychodzi ci całe nic.

0

zmienna "j" nie ma wartości, tablica obiektów jest tworzona za każdym wywołaniem pętli, za każdym razem z większym rozmiarem i z nazwą klasy... może najpierw poczytaj o klasach a jak czytałeś to przeczytaj jeszcze raz

0

Mnie ciekawi co dokładnie to ma robić?

arctan arctan[i]; 

Ten kod w ogóle się kompiluje? To wygląda jakbyś tworzył tablicę w pętli o wielkości "i" ! Nie przeciążyłeś operatora

operator[] 

więc takie wywołanie nie zadziała.

0

Do tego, co już poprzednicy napisali, jak piszesz funkcję, która ma coś zwracać, to przydałby się return....

1 użytkowników online, w tym zalogowanych: 0, gości: 1