많은 템플릿 함수를 템플릿 클래스의 friend 함수로 편리하게 선언하는 방법은 무엇입니까?클래스의 친구로 많은 함수 선언하기
는예 : 단계 1,2,3 다양한 기능의 각각에 대해 반복받을
template <typename T>
void funct1(MyClass<T> & A); //1.forward declaration.
template <typename T>
class MyClass{
protected:
T a;
friend funct1(MyClass<T> & A); //2.declare friend
}
template <typename T>
void funct1(MyClass<T> & A){ //3.actual implementation
++A.a;
}
....
이 뭔가에 모든 기능이 그룹에 가능하고 모든 것을 선언 뭔가 템플릿 클래스의 친구입니까?
? 어쩌면 디자인을 재고해야 할지도 모릅니다. –
나는 n 차원 배열 사이에 수학을위한 작은 라이브러리를 쓰고있다. myclass는 n 차원 배열 객체입니다. 함수는 ndarrays에서 작동하는 많은 수학 연산입니다. 나는 모든 기능을 ndarray 객체의 메소드로 만들 수 있습니다. 흠. 하지만 죄 (ndarray A) 대신에 A.sin()과 같은 것을 얻습니다. 그것은 약간 이상하다고 느낀다. – rxu
배열의 요소를'iterator' 또는'operator []'로 노출시켜야 할 수도 있습니다. 단순히 함수를 '친구'로 만드는 것은 좋은 생각이 아닙니다. 그렇지 않으면 새로운 함수를 추가 할 때마다'MyClass'를 수정해야합니다. –