When - in the source code - I attempt to get (for example) p[0] (check.getP(0)) it won't return with anything. I have already set p[0] to "password (check.setP(0, "password")) so it should be returning that, right?
Can you be a bit more specific? What are you inputting into your program? What output is it giving you? How is the behaviour you're seeing different from what you expect to see?
You haven't shown checkHoney, so I have no idea what that does.
In spite of that, you have a number of obvious problems.
source.cpp
----------
Line 54: passwords is local within the scope of sign == 2. It goes out of scope at line 60.
check.cpp
---------
Line 16,24: honey is a local variable. What is the point of calling the setter at line 24, when it goes out of scope at line 25.
Line 29: lib is a local variable. What is the point of setting the elements of lib, when it goes out of scope at line 42.
Line 41: You're returning an empty string. Why?
Line 56: Your for loop is going to cause an out of bounds reference. p has 5 elements. [0]-[4]. Your for loop is going to try and reference p[5] which is out of bounds.
main.cpp
line 13: You're using the assignment operator (=), not the equality operator (==).
Line 25: checkpass consists of 5 empty strings.
Line 28: This is going to output an empty string.
Line 33-34: You're outputting and comparing against empty strings.
Line 26,42: checkhoney.honey is uninitialized (garbage).
Lines 70-80: These lines do nothing.
Lines 67-68: gen and genhoney are local variables. They go out of scope at line 89. What is the point of these variables?
check.cpp
---------
Line 33: If a match on x is not found, what is returned? How does the caller determine a match was not found?
Do you understand the concept of local variables going out of scope?