I have a problem with declaring a vector of pointers to objects I created.
I have two Base classes, let it be class A and B. I also have C and D derived from A. In B.h I have:
#ifndef B_H
#define B_H
#include "A.h"
#include <cstdlib>
#include <vector>
#include <string>
#include <fstream>
#include <iostream>
using namespace std;
class B
{
unsigned int k;
unsigned int m;
unsigned int n;
vector < C* > cs;
vector < D* > ds;
string** t;
public:
B();
B(string nameoffile);
~B();
};
#endif // B_H
Now I would like to add some things to these vectors in the constructor. But there appears to be a problem. When I try to use them they are somehow not found. I have a code in B.cpp like:
B:: B(string nameoffile)
{
....
cs.push_back(new C(...)); // new Constructor of C
....
}
The program does not work in the line above. There are no errors nor warnings, but the program stops here. It seems like I can not use these vectors, beacuse they are not found or something. There is no problem with the code, beacuse I tried to use it with completely new vectors created inside the constructor and it worked. But it does not work with the vectors as members of B. I also tried to clear the vectors in the beginning, but it did not help. No operations on these vectors are possible.
question from:
https://stackoverflow.com/questions/66055819/declaring-with-a-vector-as-a-class-member-c 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…