2013-06-14 3 views
-4

매우 단순하지만 Iam 오류를 제거 할 수 없습니다. 복잡한 변수에 정수 값을 저장하고 싶습니다. comp 다음, 표준 복합 형이 아닌 경우복잡한 변수에 정수 값을 저장

comp cal = int2; 

:

int int2 =2; 
comp *cal = int2; 

감사

+6

당신은'*'을 원하지 않습니다; 복잡한 변수가 아니라 포인터가됩니다. 그리고'comp'는 어떻게 정의되어 있습니까? 숫자 형을 취하는 암시 적 생성자가 있으면'comp cal = int2; '가 작동해야합니다. –

+0

다시! .. 퀘스트를 요청하기 전에 FAQ를 읽으십시오. – Spandan

+0

C++에서 복소수를 처리하는 방법을 놓친다면'std :: complex' 클래스 (http://www.cplusplus.com/reference/complex/complex/)를 살펴보십시오. –

답변

2

당신이 표준 복소수를 사용하는 경우 (즉, compstd::complex<something>의 별칭입니다) 우리는 그것이 어떻게 정의되는지를 알아야 할 것입니다; 어떻게 그것이 작동할지 짐작할 수있는 방법이 없습니다.

UPDATE : 귀하의 코멘트에 관한 : 그것은 사용자 정의 집계 유형, 그리고 Q 가정하면 실수 부분이기 때문에 :

comp cal = {0, int2}; 

당신이 정말로 대신 표준 타입을 사용하는 것이 좋습니다 있지만.

나머지 의견에 관해서 : 왜 포인터를 사용해야합니까? 그건 미친 짓이야. 하지만 당신은 정말 하나가 필요한 경우 :

comp cal_ = {0, int2}; 
comp *cal = &cal_; 

을하거나 어떤 이유로 동적 할당을 필요로하는 경우 (이 당신이 거의 확실하지, 당신은, 당신이하지 원시 포인터 스마트 포인터를 사용해야 할 경우) :

comp *cal = new comp{0, int2}; 
// and don't forget to delete it when you've finished with it 
delete cal; 

또는 당신은 사전 2011 언어 붙어하는 경우 : 당신은 당신이해야 할 생각 어떤

반복하는 그러나
comp *cal = new comp; 
cal->I = 0; 
cal->Q = int2; 

는, 당신은 거의 확실하게 여기 포인터를 원하지 않는다.

+0

답장을 보내 주셔서 감사합니다.하지만 comp *뿐 아니라 comp *를 사용해야합니다. 다른 어떤 기술. comp는 typedef struct로 정의됩니다. { \t float I; \t float Q; } comp; – Annie

+0

@Annie : 좋아, 유형을 초기화하는 방법을 보여줄 답변을 업데이트했습니다. 하지만'comp * '를 사용할 필요는 없다고 확신합니다. 그건 미친 짓이야. –

+0

고마워요. 나는 그것이 단순하다는 것을 알았다. 그러나 wasnt는 마음에 간다. – Annie

관련 문제