Daum 어학사전으로 모르는 단어와 문장을 손쉽게 찾아보세요.
PC웹, 모바일, 태블릿 PC에서 편리하게 사용하실 수 있습니다.

Daum 단어장 바로가기 Daum 단어장 메뉴 바로가기 Daum 단어장 내용 바로가기

단어장

c++

(탈퇴한사용자, 41개, 2012.11.23최종수정)

단어 목록

발음듣기 |
선택내용 : 최신순 선택옵션

private: int x; int y; const int c; int& rx; public: point( int _x, int _y) : x(_x), y(_y), c(0), rx(x) {} 생성자 뒤에 colon을 사용해서 멤버를 초기화하는 방법이다. 코드의 순서가 아니라 멤버가 선언된 순서대로 초기화된다. 클래스 내의 const 멤버나 레퍼런스 멤버는 colon initialize를 사용해서 반드시 초기화해야 한다.

private: int x; int y; const int c; int& rx; public: point( int _x, int _y) : x(_x), y(_y), c(0), rx(x) {} 생성자 뒤에 colon을 사용해서 멤버를 초기화하는 방법이다. 코드의 순서가 아니라 멤버가 선언된 순서대로 초기화된다. 클래스 내의 const 멤버나 레퍼런스 멤버는 colon initialize를 사용해서 반드시 초기화해야 한다.

인라인 함수는 컴파일 시간 문법이다. 아무리 인라인 함수라 해도 함수 포인터를 사용해서 호출하면 인라인 치환이될 수 없다!!

인라인 함수는 컴파일 시간 문법이다. 아무리 인라인 함수라 해도 함수 포인터를 사용해서 호출하면 인라인 치환이될 수 없다!!

C이 casting은 unreasonable해서 대부분 강제로 casting된다. 그래서 용도에 따른 casting 연산자가 필요하다. static_cast, reinterpret_cast, const_cast, dynamic_cast가 있다.

C이 casting은 unreasonable해서 대부분 강제로 casting된다. 그래서 용도에 따른 casting 연산자가 필요하다. static_cast, reinterpret_cast, const_cast, dynamic_cast가 있다.

template< typename T> T max( T a, T b) { return a > b ? a:b; }와 같이 선언해서 모든 type에 대해서 처리할 수 있도록 한다. max(65, 'B')는? 컴파일 에러다. 대신 서로 다른 type의 경우 max<int>(65, 'B')로 호출가능하다.

template< typename T> T max( T a, T b) { return a > b ? a:b; }와 같이 선언해서 모든 type에 대해서 처리할 수 있도록 한다. max(65, 'B')는? 컴파일 에러다. 대신 서로 다른 type의 경우 max<int>(65, 'B')로 호출가능하다.

함수호출에는 많은 overhead가 있고, 매크로는 버그가 발생할 수 있어서 C++에서는 인라인 함수를 사용한다. inline int square(int x) { return x*x; }. 사용자가 inline으로 지정해도 컴파일러가 무시하는 경우도 있다. inline함수에서 inline이 아닌 다른 함수를 호출하거나 inline 함수의 주소를 얻는 코드가 있는 경우에는 컴파일러에 의해 무시하기도 한다.

함수호출에는 많은 overhead가 있고, 매크로는 버그가 발생할 수 있어서 C++에서는 인라인 함수를 사용한다. inline int square(int x) { return x*x; }. 사용자가 inline으로 지정해도 컴파일러가 무시하는 경우도 있다. inline함수에서 inline이 아닌 다른 함수를 호출하거나 inline 함수의 주소를 얻는 코드가 있는 경우에는 컴파일러에 의해 무시하기도 한다.

1) 함수의 인자는 스택을 통해서 전달된다. 2) 함수 호출을 마치고 돌아올 주소도 스택에 보관된다. 3) 함수의 리턴 값은 레지스터(EAX)를 사용해서 전달된다. 4) buffer overflow가 발생하면 함수의 리턴 주소를 덮어쓰는 오류가 발생할 수 있다.

1) 함수의 인자는 스택을 통해서 전달된다. 2) 함수 호출을 마치고 돌아올 주소도 스택에 보관된다. 3) 함수의 리턴 값은 레지스터(EAX)를 사용해서 전달된다. 4) buffer overflow가 발생하면 함수의 리턴 주소를 덮어쓰는 오류가 발생할 수 있다.

1) mutable. 2) 변하는 것과 변하지 않은 것은 분리되어야 한다. 상수 함수안에서 변해야 하는 것이 있다면 별도의 구조체를 뽑는다.

1) mutable. 2) 변하는 것과 변하지 않은 것은 분리되어야 한다. 상수 함수안에서 변해야 하는 것이 있다면 별도의 구조체를 뽑는다.

외부에서 바라 볼때는 상수가 맞지만 다양한 기법때문에 내부적으로는 멤버를 변경해야 하는 경우이다.

외부에서 바라 볼때는 상수가 맞지만 다양한 기법때문에 내부적으로는 멤버를 변경해야 하는 경우이다.

1) 객체가 const로 생성된 경우 상수 함수만 호출할 수 있다. const Point p(1,2); p.print(); // error 비상수 함수 호출. 2) const로 생성된 객체의 멤버 data를 변경할 수 없지만 멤버 data의 값을 얻을 수 는 있어야 한다. 3) 동일 이름을 가진 상수 함수와 비 상수 함수를 만들 수 있다. void foo() const; void foo();

1) 객체가 const로 생성된 경우 상수 함수만 호출할 수 있다. const Point p(1,2); p.print(); // error 비상수 함수 호출. 2) const로 생성된 객체의 멤버 data를 변경할 수 없지만 멤버 data의 값을 얻을 수 는 있어야 한다. 3) 동일 이름을 가진 상수 함수와 비 상수 함수를 만들 수 있다. void foo() const; void foo();

1) 멤버 변수의 값을 바꿀 수 없다. 2) 모든 멤버 data는 상수 취급된다. int* foo() const { return &x; // error }. 3) 상수 함수 내에서 비 상수 함수를 호출할 수 없다. 4) 함수의 선언과 구현에 모두 const를 적어야 한다. void Print() const

1) 멤버 변수의 값을 바꿀 수 없다. 2) 모든 멤버 data는 상수 취급된다. int* foo() const { return &x; // error }. 3) 상수 함수 내에서 비 상수 함수를 호출할 수 없다. 4) 함수의 선언과 구현에 모두 const를 적어야 한다. void Print() const
이전페이지 없음 1 2 3 4 5 다음페이지 없음