첫째, 저는 물리학 자입니다. 정확한 용어를 사용하지 않거나 답변을 얻지 못하면 코딩 경험과 지식이 제한적입니다. 이 질문은 이미 존재합니다. 나는 나에게 의미가있는 비슷한 것을 찾을 수 없었다.C++에서 동적으로 사용자 정의 클래스를 할당합니다. 모두 같은 공개 함수를 사용합니다.
이제 일부 양자 시스템에 대한 몬테카를로 시뮬레이션을 수행하고 있습니다.이 중에서 특정 다항식이 필요합니다. 나는 그러한 모든 다항식에 대한 수업을 작성했다. 그것들은 모두 초기화 (문자열과 정수) 할 때 동일한 인수를 사용하며, 모두 공용 메서드 만 외적 관점에서 동일합니다 (복잡한 두 배 배열을 취해 하나의 복합 double을 출력 함). 일반 사진 지금
class Polyi{
public:
Polyi(string type, int N){
::Set things up if needed::
}
complex<double> poly(complex<double> *z){
::Calculate the polynomial and return::
}
}
, 나는 주어진 시뮬레이션에 사용하고자하는 다항식 내가 외부에서 입력 할 수있는 뭔가를 할 필요가있다. 나는 파이썬에 익숙하다.
if poly_type==i: polynomial = Polyi(type, N)
elif ...
내가하고 싶은 일이다. 후속 코드에서 polynomial.poly(z)
을 사용합니다.
그러나 할당시 사용할 클래스 유형을 선언해야하기 때문에 C++에서는이 작업이 매우 어렵습니다. 나는 몇 가지 것을 시도했다. 모든 개별 다항식을 포함하는 핸들러를 만들었습니다. 일하지 않았어. 나는 또한 poly(z)
함수를 포함하여 이들 모두에 대한 기본 클래스를 만들고 각각에 과부하를 넣으려고했다. 나는 또한 여기에서 부족했다. 그러나, 그들은 실제로는 구현할 수 없기 때문에 내가 바보이기 때문에 아마도 작동하지 않았을 것입니다. 따라서
, 어떻게 내 실제 계산을 쳤을 때, 나는 변수 polynomial
에서, 어떤 클래스의 원하는 다항식을 가지고 난 그냥 polynomial.poly(z)
를 호출 할 수 있도록 동적 할당의이 종류를 구현할 수 있을까? 가능한 가장 간단한 해결책은 코드가 실제로 무엇을하는지 이해할 수 있기를 원하기 때문입니다.
도움 주시면 감사하겠습니다.
편집 : 모두에게 고맙습니다! 도움이되지 않는 의견/대답이 하나도 없었으며 조회 할만한 많은 제안이 없었습니다. 모두에게 감사 드려요!!!
ps. 명확히하기 위해, 그것은 중요한 포인트 인 것처럼 보이지 않지만, type
변수는 일종의 다항식 내에서 다항식의 유형을 정의합니다. 예를 들어, Pn 다항식의 경우, Pn ("1", N) = z1 + z2 + ... + zN, Pn ("2", N) = z1^2 + z2^2 + ... zN^2 더 복잡한 측면에서 나는 11122 또는 223과 같은 정수의 파티션에 의해 인덱스되는 잭 다항식을가집니다. 나는 그들과 함께 파일을 다운로드 할 수 있도록 그들을 생성하는 방법을 모릅니다. 따라서 그것은 왜 문자열입니까?
'유형'문자열과 관련하여 좀 더 구체적으로 설명해 주시겠습니까? – Rerito
개체를 먼저 선언 한 다음 개체를 할당하고 적절한 [복사 할당 연산자] (http://en.cppreference.com/w/cpp/language/as_operator)를 사용할 수 있습니다. –
다항식을 정의하는 정수 문자열입니다. 그것이 문자열이라는 사실은 내가 관련된 모든 인자와 힘을 정의하는 텍스트 파일을 가지고있는 다항식의 일부에 유용합니다. 가장 간단한 예를 들어, 그 문자열의 각 정수는 모든 z의 합계에서 각 'z'의 거듭 제곱을 정의합니다 – user2539411