I have classes Guy and Girl. guy[i] and girl[j] are vectors (whose sizes will change constantly). A boolean array know[i][j] will require 4 kinds because of guy knowing girl, girl knowing guy, guy knowning guy, and girl knowing girl, which will cause a real headache when it comes to if statements and so forth. Same problem if I use guy[i].knowsGirl[j], girl[i].knowsGirl[j], which is the same thing really. Defining class Person to handle both classes is not in the spirit of my program (and it will mess things up actually).
I was thinking of defining a function: bool know (Guy &guy, Girl &girl), and overload it for the 4 different orderings of guy and girl, then I don't have to worry about typing 4 cases every time. But I have nothing to type in the body of the function because the guys and girls have not seen each other yet (the boolean values are defined later by using rand () ). Am I allowed to give a function values after it is defined? So what is the best course of action here? If I make a bad choice now, and realize it too late, I will never be able to fix my entire code with a better choice later.