Witam,
otoz wyskakuje mi powyzszy blad, a dokladnie "error C2064: term does not evaluate to a function taking 1 arguments", podczas proby kompilacji ponizszego:
Klasy.h
#ifndef A_H
#define A_H
#include <iostream>
//namespace tracked{
///////////////////////////////Klasa A////////////////////////////////////
class A{
private:
int dana;
public:
A();
A(int);
A(A&);
~A();
void zmiana(int);
A& operator=(const A&);
friend std::ostream& operator<<(std::ostream& strm, const A& obiektA);
//friend B (A&,A&);
};
///////////////////////////////Klasa B////////////////////////////////////
class B{
private:
A a1;
A a2;
public:
B (A&,A&);
B (B&);
//~B();
//&B operator=(B&);
//&B operator=(A&);
};
//} // przestrzen
#endif // A_H
Klasy.cpp
#include <iostream>
#include "Klasy.h"
//namespace tracked{
////////////////////////////////////////////////////////////////////
A::A(int parametr):dana(parametr) {
std::cout << "A::A(int) " << dana << std::endl;
}
////////////////////////////////////////////////////////////////////
A::A(A& obiektKlasy):dana(obiektKlasy.dana){
std::cout << "A::A(A&) " << dana << std::endl;
}
////////////////////////////////////////////////////////////////////
A::~A(){
std::cout << "A::~A() " << dana << std::endl;
}
////////////////////////////////////////////////////////////////////
void A::zmiana(int Parametr){
std::cout << "void A::zmiana(int) z " << dana << " na " << Parametr << std::endl;
dana=Parametr;
}
////////////////////////////////////////////////////////////////////
A& A::operator=(const A& rhs){
std::cout << "A& A::operator=(const A&) z " << dana << " na " << rhs.dana << std::endl;
dana=rhs.dana;
return *this;
}
////////////////////////////////////////////////////////////////////
std::ostream& operator<<(std::ostream& strm, const A& obiektA){
strm << "dana obiektu: " << obiektA.dana << ' ';
return strm;
}
//******************************************************************
B::B(A & gd, A &ft){
a1(gd); // tu wyskakuje blad!
a2(ft); // i tu tez!
}
//}
Chcialbym pobrac dane za pomoca konstruktora B::B(A&,A&). Probowalem to zrobic za posrednictwem konstruktora z klasy A, do ktorej mam pobrac dane.
Czy da sie tak zrobic? Czy da sie skorzystac z listy inicjalizacyjnej?
Nie moge korzystac z dziedzieczenia.
Pozdrawiam,
prosze o szybka pomoc!