Saya sedang menulis perpustakaan aljabar linier (cerita panjang, ini adalah tugas sekolah) yang melibatkan matriks, vektor, dll. Dalam proses membuat perpustakaan ini, saya akan membuat fungsi yang melakukan operasi matematika pada objek. Misalnya, transpos matriks, invert matrix, normalisasi vektor, dll.
Saya ingin tahu apa "praktik terbaik" untuk fungsi semacam ini ... Artinya, apakah saya harus menjadikan fungsi tersebut sebagai fungsi anggota, atau bukan anggota? (Demi kejelasan / penggunaan perpustakaan)
Contoh:
//Member function way:
B = A.transpose();
C = A.inverse();
//Non-member function way:
B = linalg::transpose(A); //Non-member transpose function in linear algebra namespace
C = linalg::inverse(A);
Apakah ada standar untuk operasi semacam ini? Atau, setidaknya, adakah cara yang umum dilakukan orang-orang ini? Saya condong ke opsi pertama, tetapi saya ingin tahu apakah ini direkomendasikan.