저는 행렬, 벡터 등이 포함 된 선형 대수 라이브러리 (긴 이야기로, 학교 과제입니다)를 작성하고 있습니다.이 라이브러리를 만드는 과정에서 객체에 대해 수학 연산을 수행하는 함수를 만들 것입니다. 예를 들어, 행렬 전치, 행렬 반전, 벡터 정규화 등
이런 종류의 함수에 대한 "모범 사례"가 무엇인지 궁금합니다. 즉, 함수를 멤버 함수 또는 비 멤버로 만들어야합니까? (명확성 / 라이브러리 사용을 위해)
예:
//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);
이런 종류의 작업에 관한 표준이 있습니까? 아니면 사람들이 이것을하는 일반적인 방법이 있습니까? 첫 번째 옵션을 기대하고 있지만 이것이 권장되는지 알고 싶습니다.