반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- OS
- VUE
- Medium
- web
- Level1
- 백준
- Doitvue.js입문
- 카카오
- 자바스크립트
- react
- 리액트
- 파이썬
- javascript
- 동적계획법
- LeetCode
- CS
- Level3
- 웹프로그래밍
- 프로그래밍
- 고득점Kit
- 리트코드
- python
- sql
- dp
- typescript
- Level2
- 배열
- 코테연습
- 프로그래머스
- C++
Archives
- Today
- Total
[c++] class object (클래스 객체 ) - ② 본문
반응형
- 멤버 변수의 값을 변경하지 않는 메서드에서만 사용
-
다른 개발자에게 이 함수의 멤버 변수의 값은 변경하지 않는다는 메세지
-
실수로 멤버 변수의 값을 바꾸려고 시도할 때, 컴파일러 단에서 오류 메세지
-
const 객체를 사용해서 이 함수를 호출 할 수 있다.
//point.cpp #include "point.h" #include<iostream> using namespace std; Point::Point() { x = 0; y = 0; } Point::Point(int _x, int _y) { x = _x; y = _y; } Point::Point(const Point& pt) { x = pt.x; y = pt.y; } void Point:: Print() const { cout << x <<" , "<< y << endl; } //point.h #pragma once class Point { public: void Print() const; Point(); Point(int _x, int _y); Point(const Point& pt); void SetX(int value); void SetY(int value); int GetX() const { return x; } int GetY() const { return y; } private: int x, y; }; inline void Point::SetX(int value) { if (value < 0) x = 0; else if (value > 100) x = 100; else x = value; } inline void Point::SetY(int value) { if (value < 0) y = 0; else if (value > 100) y = 100; else y = value; } //main.cpp #include #include"point.h" using namespace std; void Area(const Point& pt) { int area = pt.GetX() * pt.GetY(); //const 객체는 const 메소드만 호출 가능 cout << "0, 0과 이 점이 이루는 사각형의 면적 = " << area << endl; } void main() { Point pt(100, 100); Area(pt); }
- 클래스의 멤버 함수 참조용 함수 포인터
typedef void(_FP1)(int);//오류
typedef void(Point::_FP2)(int);
void main()
{
Point pt(100, 100);
FP1 fp1 = &Point::SetY; 오류
FP2 fp2 = &Point::SetY;
(pt.*fp2)(50);
pt.Print();
}
-
객체 배열
void main() { Point arr[4] = { Point(10,20),Point(11,27), Point(99,80),Point(1000,-99), }; for (auto i = 0; i < 4; i++) arr[i].Print(); }
-
객체 동적 생성
Point p1(5, 10); Point* p2 = new Point(); //default Point* p3 = new Point(50,50);//parameters Point* p4 = new Point(p1);//copy constructor (*p2).Print(); p3->Print(); p4->Print(); delete p2; delete p3; delete p4; p2 = p3 = p4 = NULL;
반응형
'객체지향프로그래밍 (C++)' 카테고리의 다른 글
[c++] 반복문 없이 8진수 변환 (재귀함수) (0) | 2020.07.09 |
---|---|
[c++] 상속 (0) | 2020.07.09 |
[c++] void pointer (void 포인터) (0) | 2020.07.07 |
[c++] 데이터 표현 (0) | 2020.07.07 |
[c++] Union (공용체) (0) | 2020.07.07 |
Comments