본문 바로가기

공부/c++

error C2662: 'Point::GetY' : 'this' 포인터를 'const Point'에서 'Point &'(으)로 변환할 수 없습니다 error C2662: 'Point::GetY' : 'this' 포인터를 'const Point'에서 'Point &'(으)로 변환할 수 없습니다 const함수에서는 일반함수를 호출할 수 없고 const함수만을 호출 할 수 있음 더보기
c++ 공부 정리 *레퍼런스 변수 int b; int &a = b; //레퍼런스 변수는 특이하게 변수이름을 할당하여 사용함 int &a = int(3); Point클래스가 있다고 가정 Point a = Point(); //임시객체를 생성하여 레퍼런스 변수 a에 저장 1. 클래스 정의 멤버 변수 + 멤버 함수 2. 객체 생성 Point pt; pt.Print(); 3. 멤버 함수 안에서의 이름 충돌 Class Point { int x; void Point::Print() { int x = 3; cout Draw(); for(i = 0; i < 5; ++i) { delete shapes[i]; shapes[i] = NULL; } return 0; } 문제점 모두 Shape::Draw()함수를 호출하게 됨 +가상함수 #incl.. 더보기
c++ 헤더 파일과 구현파일 (여러 개의 소스 파일을 사용하는 법) 다른 구현 파일에 있는 함수르 사용할 수 있기 하기 위해 할 일 1. 공유될 함수가 있는 구현 파일의 이름을 따서 헤더파일을 만듦 2. 이 헤더 파일에 공유될 함수의 원형을 적음 3. 공유될 함수를 호출할 구현 파일에서는 이 헤더 파일을 포함 4. 구현 파일에 자기 자신에 대한 헤더 파일을 포함 구조체를 공유하기 위해 해야 할 일 1. 구조체의 이름을 따서 새로운 헤더 파일을 만듦 2. 이 헤더 파일에 구조체의 정의 부분을 위치시킨다 3. 구조체를 사용하는 구현 파일마다 이 헤더 파일을 포함시킨다 예제 21-25 더보기
변수와 함수 관계 프로그램을 교실, 각 함수를 학생의 책상이라고 생각해보자 또, 검은색 변수를 교실 앞에 비치된 책이라고 파란색, 빨간색 변수는 각 학생이 가지고 있는 책이라고 생각해보자 함수는 어떤 일을 처리할 수 있는 각 학생마다 자신의 책상으로 생각해보자 교실 앞에 비치된 책(검은색 변수)을 학생이 자기 책상(함수)로 가져가서 볼 수 있다. 하지만 각 학생이 가지고 있는 책(파란색, 빨간색 변수)는 다른 학생이 마음대로 가져가서 볼 수 없다. 더보기
정적 멤버 정적 멤버는 모든 객체가 공유하는 멤버 class window { int x, y; void create(); static char desktop[20]; static void closeAll(); } w1.desktop == w2,desktop == windows::desktop p.575 정적 멤버는 객체의 소유가 아니라 클래스의 소유 접근 방법 1. student::student_count 2. 일반 멤버함수 안에서 student_count 정적 멤버 함수 안에서 일반 멤버에 접근할 수 없음 : 어느 객체의 멤버인지 모르기 때문에 객체가 정적 멤버 함수 안에서 선언되었다면 멤버 변수가 private로 설정되었다고 하더라도 접근할 수 있음 : 정적 멤버 함수는 클래스(클래스를 통해서 객체가 생성됨)에.. 더보기
임시 객체와 소멸 시기 1. 임시 객체 임시 객체는 수식의 계산 도중에 중간 결과를 저장하기 위하여 임시적으로 만들어지는 객체이다. 2. 임시 객체 생성 예 void main() { string s1 = "Hello "; string s2 = "World"; const char* p = (s1 + s2).c_str(); cout 더보기
const속성을 가진 레퍼런스 변수 일반 특징 int b = 1; const int& a = b; const속성 때문에 a를 이용해서 b에 저장된 내용을 바꿀 수 없음 추가 특징 1. const 속성을 가진 레퍼런스는 추가적인 특징을 갖게 되는데, 상수에 대한 별명으로 쓰일 수 있다는 점이다. const int& rci = 100;//성공 int& ri = 100;//실패 레퍼런스는 변수를 참조하게 만들어졌기 때문에 상수를 바로 참조할 수 없다. 그래서 이 경우에는 그 상수 값을 갖는 임시 변수(객체)를 하나 만든 후에 레퍼런스가 이 임시 변수(객체)를 참조하게 만든다. 이 예제의 경우에는 100값을 갖는 임시 변수를 만든 후에 rci가 그 변수를 참조하게 한다. 문제는 이 임시 변수의 값을 변경하는 것이 문제를 유발하기 쉽다는 점이다. .. 더보기
c++ 공부 책 Effective C++ Effective STL 입문서로 기본때셨으면 effective c++ 보시구요..ㅋ C++에서 강력한 기능중에 하나인 STL에 관한책을 보면 좋겠네요... (요것도 숙달되면 effective C++보시면 좋음) 그 뒤로 Modern C++ Design정도 독파하시면 C/C++프로그래밍 실력은 어디가도 c++ 기본서 (열강 또는 기타) -> accelerated c++ -> c++ standard library 튜토리얼 레퍼런스 accleated C++ 책 추천합니다.. 여력이 되시면.. in-depth 씨리즈 전부다.. effectif C++시리즈 (more effective C++, effective stl..) gof 의 디자인패턴 xp , 리팩토링 관련서적 그리고 뱐 아자.. 더보기