본문 바로가기
728x90
반응형

2019/0518

C++ 클래스 선언 클래스란, 객체 지향 프로그래밍의 특징 중 하나인 추상화(abstraction)를 사용자 정의 타입으로 구현한 것이다. c++에서 이러한 클래스를 선언하는 방법은 구조체를 선언하는 방법과 거의 같다. 구조체는 struct 키워드를 사용하지만, 클래스는 class 키워드와 접근 제어 지시자를 함께 사용한다. 접근 제어 지시자는 객체 지향 프로그래밍의 특징 중 하나인 정보 은닉(data hiding)을 위한 키워드이다. 정보 은닉(data hiding) c++에서 구조체의 모든 멤버는 외부에서 언제나 접근 할 수 있다. 하지만, 클래스는 객체지향 프로그래밍의 기본 규칙 중 하나인 정보 은닉에 대해서도 생각해야한다. 정보 은닉이란 사용자가 굳이 알 필요가 없는 정보는 사용자로부터 숨겨야 한다는 개.. 2019. 5. 4.
C++ 함수 오버로딩 ( function overloading) 디폴트 인수가 인수의 개수를 달리하여 같은 함수를 호출하는 것이라면, 함수 오버로딩은 같은 이름의 함수를 중복하여 정의하는 것을 의미한다. 객체 지향 프로그래밍의 특징 중 바로 다형성(polymorphism)의 구현이다. 1. void Display(const char* str, int n); // 문자열 str을 n번 출력함. 2. void Display(const char* str1, const char* str2); // 문자열 str1과 str2를 연달아 출력함. 3. void Display(int x, int y); // x * y를 출력함. 4. void Display(double x, double y); // x / y를 출력함. 함수.. 2019. 5. 4.
C++ C++ 특징 객체 지향 프로그래밍 언어이다. 일반화 프로그래밍 언어이다. 네임스페이스(namespace) C++프로그램을 작성할 때 발생하는 이름에 대한 충돌을 방지해 주는 방법을 제공한다. 네임스페이슨 C언어에는 없는 C++만의 새로운 기능이다. 삼항 연산자(ternary operator) 문법 조건식 ? 반환값1 : 반환값2 ?앞의 조건식에 따라 결과값이 참이면 반환값1을 반환하고, 결과값이 거짓이면 반환값2를 반환한다. 포인터란? C++에서 포인터(pointer)란 메모리의 주소값을 저장하는 변수이며, 포인터 변수라고도 부른다. 포인터 연산자 주소 연산자(&) 변수의 이름 앞에 사용하며, 해당 변수의 주소값을 반환한다. '&' 기호는 앰퍼샌드(ampersand)라고 읽으며, 번지 연산자라고도 부른다.. 2019. 5. 4.
Async/Await 비동기 처리를 할 수 있는 방법 Callback Promise Async/Await Async aysnc 함수의 리턴값은 promise 이다. function myFunc(){ return 'func'; } async function myAsync(){ return 'async'; } console.log(myFunc()); console.log(myAsync()); 결과는 func Promise {: "async"} async function myAsync(){ return 'async'; } myAsync().them((result) => { console.log(result); }); 결과는 async 즉, promise는 비동기 연산을 다루되, 비동기 연산이 끝나면 resolve하고 resolve.. 2019. 5. 4.
this 자바스크립트에서 함수의 this 키워드는 다른 언어들과 비교하여 조금 다르게 동작한다. 자바스크립트의 this는 누가 실행했냐 이다. 대부분의 경우, this의 값은 함수를 호출하는 방법에 의해 결정된다. ES5는 함수의 this 값이 함수가 어떻게 호출되었는지 개의치 않고 설정할 수 있는 bind 메소드를 소개했다. var someone = { name : 'doromi', whoAmI : function(){ console.log(this); } }; someone.whoAmI(); 이 코드의 결과는 {name : "doromi", whoAmI : f} whoAmI를 직접적으로 호출한 객체는 someone이다. var someone = { name : 'doromi', whoAmI : function.. 2019. 5. 4.
var vs let var : 함수 단위 fuction x(){ { var t=1; } console.log(t); } x(); //1이 출력된다. t는 x라는 함수 scope 안에 들어간다. let : 중괄호 단위 변수를 싸고 있는 가장 가까운 중괄호의 scope를 가진다. function x(){ { let t = 1; } console.log(t); } x(); // t is not defined ..... t는 중괄호 안에서만 존재한다. 2019. 5. 4.
scope와 closures 유효범위(scope) 어떤 변수들에 접근할 수 있는지를 정의한다. 종류 전역 스코프 (global scope) 변수가 함수 바깥이나 중괄호 바깥에 선언되었다면, 전역 스코프에 정의된다. 전역 변수로 선언하면, 모든 곳에서 해당 변수를 사용할 수 있다. 지역 스코프 (local scope) 특정부분에서만 사용할 수 있는 변수는 지역 스코프에 있다. 지역 변수라고 부른다. 클로저(closures) 내부함수가 외부함수의 맥락(context)에 접근할 수 있는 것을 가르킨다. function outter(){ var title = 'yes'; function inner(){ alert(title); } inner(); } outter(); outter라는 외부함수 안에 inner라는 내부함수가 정의 되어 있다... 2019. 5. 4.
728x90
반응형