는 C++ 프로그램<double> * int가 C++에서 정의되지 않은 이유는 무엇입니까?
#include <complex>
#include <iostream>
int main()
{
std::complex<double> z(0,2);
int n = 3;
std::cout << z * n << std::endl;
}
오류를 얻을 수 없음 '의 Z * N의'에서 '* 연산자'에 대한 매치. 왜?
g ++ 4.4.1로 컴파일 중입니다. 아마도 컴파일러는 C++ 표준을 따르고 있습니다.이 경우 제 질문은 : 표준이 왜 이것을 허용하지 않습니까?
는 생각 복잡한는 클래스이며, *는 그 클래스에 대한 과부하 때문에, 그 원시적되지는 컴파일러 – ldog
감사에서 규칙을 캐스팅 따르지 않도록 , 나는 모호성에 대한 실수를 정정하고 연산자를 올바르게 코딩하지 않았다. (두 번째 작업을 수행 했어야하지만 첫 번째 작업은 나에게 수업 일 것입니다.) – GManNickG
처음에 제공 한 연산자의 구현은 정확하지 않습니다. (보통 프로젝트에서는 차이가 다소 작을 것입니다.) –