Can I pass an array (contactsLonN ..) of a class that is within/or a subcomponent of an array of classes (chainref) to a function in C++?
// ChainNetwork.cpp
void build_contact_map(Chain *chain, int num_chains,Contact *map) {
    //accept 1 of contactsLonN, contactsLonS, contactsLatW, contactsLatE;    
}
// ChainNetwork.h
class Vector {
public:
    double x;
    double y;
    double z;
Vector (); // Constructor declared.
};
inline Vector::Vector() {
    x = 0.0;
    y = 0.0;
    z = 0.0;
}
class Contact {
public:
    int cresid;
    double distance;
    Contact (); // Constructor declared.
};
inline Contact::Contact() {
    cresid = -1;
    distance = 0.0;
}
class ChainNetwork {
public:
    struct Contact contactsLonN[1000][20];
    struct Contact contactsLonS[1000][20];
    struct Contact contactsLatW[1000][20];
    struct Contact contactsLatE[1000][20];
}
// declarations in ChainNetwork.h
void build_contact_map(ChainNetwork *chain, int num_chains,Contact *map);
double distance ( Vector v1, Vector v2 );
// main.cpp main()
ChainNetwork *chainref;
 try {
     chainref = new ChainNetwork [num_chains];
 } catch (std::bad_alloc xa) {
     std::cout << "Allocation Failure\n";
     return 1;
 }
// 1 generic function I would like to call .. but seems to grow uncontrollably if I try to use switch(s)
build_contact_map(chainref,chains_to_use,chainref[i].contactsLonN);
build_contact_map(chainref,chains_to_use,chainref[i].contactsLonS);
build_contact_map(chainref,chains_to_use,chainref[i].contactsLatW);
build_contact_map(chainref,chains_to_use,chainref[i].contactsLatE);
Note: Related results usually employed simpler structures like ints, float, or struct, but not an array or double index array of a class within a class.
Note2: I have made extensive use of functions receiving "Vector" correctly, by reference or address; how about contactsLonN ..
 
    