2009-10-07 25 views
14
void Foo(float a){} //1 
void Foo(double a){} //2 overloaded 


Foo(1.0f);       //calls function 1 
Foo(1.0 /*double numeric suffix?*/); //calls function 2 

Nếu không, có phải là cách duy nhất để đạt được điều này không? Tôi chủ yếu quan tâm đến việc đảm bảo đôi chính xác toán học trong các hoạt động nhất định, vv:Có bất kỳ hậu tố dạng số nào để chỉ định một đôi?

ulong j; 
double v; 

j = /*some value*/; 
if(j>0UL) 
    v = 1.0/j; //if 1.0 is set as a float by the compiler then 
       //could it be likely we lose some precision here 
       //if a double would allow for more precision? Is 
       //a cast the only means of ensuring double precision? 

lời khuyên khác về việc cho phép trình biên dịch để tự động xác định các loại trong khi hoạt động sẽ là hữu ích.

Trả lời

29

Hậu tố là không cần thiết trong C++. Bất kỳ giá trị dấu phẩy động nào thiếu hậu tố 'f' sẽ được gõ vào kiểu trình biên dịch theo mặc định.

Tham chiếu: http://en.wikipedia.org/wiki/C_0x

+0

Chính xác thông tin tôi cần. Cảm ơn bạn. – BuckFilledPlatypus

Các vấn đề liên quan