목록프로그래밍언어 (95)
nakka soft world !
delete function //두개 정수의 최대 공약수를 구하는 함수int gcd(int a, int b){return 0;} double gcd(double a, double b); // 선언만 하는 경우 link error가 발생함. // C++11 함수 삭제double gcd(double a, double b) = delete; // 해당 함수는 삭제 되었습니다를 알려줌. 사용하려고 할때 Compile error가 발생함. int main(){gcd(2, 10);gcd(2.2, 4.3);} suffix return type, trailing return 후위 반환 타입: 템플릿이나 람다에서 복잡한 수식은 리턴 타입을 앞에 사용할 수 없어 정의됨 auto squsre(int a) -> int{ret..
function template /*int square(int a){return a * a;}double square(double a){return a * a;}int main(){square(3);square(3.3);}*/ // 함수 템플릿 : 함수를 만들어 내는 틀template T square(T a){return a * a;}int main(){square(3); // int square(int a) 함수 생성square(3.3); // double square(double a) 함수 생성} int main(){int n = 3;short s = 3;double d = 3.3square(n); // int square(int a) 함수 생성. 암시적 추론(컴파일러가 결정).square(d); /..
inline function int Add1(int a, int b){return a+b;}inline int Add2(int a, int b){return a+b;}int main(){int n1 = Add1(1, 2);int n2 = Add2(1, 2);} 장점 : 속도가 빠르다.단점 : 함수의 라인이 긴 경우 등에 실행 파일의 크기가 커질 수 있다.
Function Overloading int square(int a){return a*a;}double square(double a){return a*a;}int main(){square(3);square(3.3);} // 인자 타입이 다른 경우void f3(int a){}void f3(double d){} // 인자 갯수가 다른 경우void f3(int a){}void f3(int a, int b){} // Errorvoid f3(int a){}void f3(int a, int b=0){} // 리턴 값이 다른 경우void void f4(int a){}int f4(int a){} // 인자 타입이 다른 경우, Errorvoid f3(int a){}void f3(int a){} int main(){f3(..
Default parameter // 선언부void foo(int a, int b = 0, int c = 0); // 마지막 인자부터 지정해야 함, 선언부 구현부가 다른경우 구현부에는 넣으면 안됨. 선언부에만 넣기 int main(){foo(1,2,3);foo(1,2);foo(1);} // 구현부void foo(int a, int b /*= 0*/, int /*c = 0*/){ // Default Parameter가 있다는 것을 주석으로 표시함}
C++11 - 기존 Styleint x[10] = {1,2,3,4,5,6,7,8,9}for(int i =0; i
C++11/14 C Styletypedef int DWORD;typedef void(*PF)();- 타입의 별명을 만들 수 있음 using DWORD = int;using PF = void(*)();-타입의 별명과 템플릿의 별명을 만들수 있기에 typedef보다 좋음 int main(){DWORD n = 0; // intPF f; //함수 포인터}
c++ 11 int n1 = 0; // int타입char* p1 = 0; // 암시적 형변환char* p2 = 10; /errorchar* p3 = nullptr; // 포인터 0, 0에 문제가 있어 신규로 생김.int n2 = nullptr; // errorbool b = nullptr;
int x[] = {1,2,3,4,5,6,7,8,9}auto n1 = x[3]; // 좌변의 타입이 자동으로 결정됨.decltype(n1) n2; // n1과 동일한 타입의 변수 선언