목록분류 전체보기 (257)
nakka soft world !
class Point{private:int x;int y;public:Point() {cout
class Stack{private :int ids;int* buff; public:Stack() { idx = 0; } // OK // friendfirend void foo(); // 멤버함수는 아니지만 친구니까 Private변수 접근이 가능하다. 꼭 필요할때만 사용하도록. 연산자 재정의 때 주로 사용.friend class AAA; // AAA안에 있는 모든 멤버 함수는 Provate접근가능하다. }; void foo(){Stack s;s.idx = 0; // friend 이면 ok }
1. 전역변수와 일반함수 #incude using namespace std; int buff[10] = { 0 };int idx = 0; void push(int a) ( buff[idx++] = a; }int pop() {return buff[--idx]; } int main(){push(10);push(20); cout idx)]; } int main(){Stack s1, s2;s1.idx = 0; s2.idx = 0;push(&s1, 10);push(&s1, 20);cout
void Add(int ar, int ai int br, int bi, int* sr, int* si){*sr = ar + br;*si = ai + bi; } int main(){int ar = 1, ai = 1; // 1+1i;int br = 2, bi = 2; // 2+2i;int sr = 0, si = 0; Add(ar, ai, br, bi, &sr, &si); } C언어에는 복소수가 없음.. 구조체를 만든 뒤 Add함수 구현 struct Complex{int re;int im; } Complex Add(const Complex& c1, const Complex& c2){Complex temp = { c1.re + c2.re, c1.im + c1.re }return temp; } int main()..
C++ Explicit Casting int main(){int n = 10; // 4바이트 메모리 double* p1 = &n; // errordouble* p1 = (double*)&n; // ok *p1 = 3.4; // OK이더라도 운이 좋으면 Crash. 운나쁘면 메모리 침범} int main(){const int c = 10; // 상수 int* p2 = &c; // errorint* p2 = (int*)&c; // ok *p2 = 20; cout
reference 1. 기초int main(){int n = 10; // 메모리 4바이트 메모리 할당int* p = &n; int& r = n; // 기존 메모리(변수)의 별칭을 부여 하는 것 cout
namespace 1. 선언namespace Audio{void init(){cout
동적 메모리 할당 #include #include using namespace std; int main(){int* p1 = (int *)malloc(sizeof(int));free(p1); int* p2 = new int;delete p2; int* p3 = new int[10];delete p3; // 버그delete[] p3; // OK }
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); /..