Bonjour a tous,
je débute en c++ et je teste les conteneurs <vector>.
J'ai un soucis avec mon code, je n'ai pas de problème à la compilation mais lorsque je l'exécute j'ai : EXC_BAD_ACCESS et je ne comprend pas pourquoi...
voici mon code en espérant que vous pourrez m'aider. Par avance Merci.
main.cpp
ClasseB.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 #include <iostream> #include "ClasseA.h" int main (int argc, char * const argv[]) { B b; b.setB(10); b.setB(20); b.setB(25); std::cout << "b[0]" << b.GetB(0) << std::endl; B c; c.setB(1); c.setB(2); c.setB(3); A a(&b); a.setA(c); std::cout << "a[0]" << std::endl; for (unsigned i=0; i<a.GetA(0).tailleB(); i++) { std::cout << a.GetA(0).GetB(i) << std::endl; } return 0; }
ClasseB.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #include <vector> class B{ public: B(); B(const B &b); float GetB(unsigned i) const; void setB(float F); unsigned tailleB()const; protected: std::vector<float> _vF; };
ClasseA.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 #include "ClasseB.h" B::B():_vF(0){} B::B(const B &b):_vF(b.tailleB()){ for (unsigned i=0; i<b.tailleB(); i++) { _vF.push_back(b.GetB(i)); } } float B::GetB(unsigned i)const{ return _vF.at(i); } void B::setB(float F){ _vF.push_back(F); } unsigned B::tailleB()const{ return _vF.size(); }
ClasseA.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 #include "ClasseB.h" class A{ public: A(B *b); B GetA(unsigned i); void setA(B b); protected: std::vector<B> *_vB; };
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 #include "ClasseA.h" //A::A():_vB(0){} A::A(B *b){ std::vector<B> *tmp; tmp->push_back(*b); _vB=tmp; //_vB->push_back(*b); } B A::GetA(unsigned i){ return _vB->at(i); } void A::setA(B b){ _vB->push_back(b); }
Partager