티스토리 뷰
1. 정수 클래스와 객체
class Integer{
private:
int A;
public:
int getA();
int setA();
}Val1;
Integer Val2;
1) private, public: 속성
2) int A: 멤버변수
3) int getA(): 출력 멤버함수
4) int setA(): 입력 멤버함수
5) Val1: 객체 만드는 첫 번째 방법
6) Val2: 객채 만드는 두 번째 방법
2. 속성 (private, public)
1) private
- 데이터를 외부로부터 보호하기 위한 방법 = 외부 접근 불가
- 생략가능
- 해당 클래스의 멤버함수만 접근 가능
class Man {
private:
int age;
public:
int getAge();
};
Man Me;
//Me.age(x) -> Me.getAge()(o)
2) public
- 외부 접근 가능
- 주로 멤버함수 선언
3. 멤버 함수 클래스 정의
1) 내부에서 정의
class Man {
private:
int age;
public:
int getAge() {
return age;
}
void setAge(int a) { //리턴값 없으니 void
age = a;
}
};
2) 외부에서 정의
class Man {
private:
int age;
public:
int getAge();
void setAge(int a);
};
int Man::getAge()
{
return age;
}
void Man::setAge(int a)
{
age = a;
}
4. 범위 지정 연산자
1) 함수 안에서 전역 변수 접근할 때
#include <iostream>
using std::cout;
using std::endl;
int a = 10; //전역변수
int main() {
int a = 20; //지역변수
a = a + 3;
cout << a << endl; //지역변수 a, 23
::a = ::a + 5;
cout << ::a << endl; //전역변수 a, 15
return 0;
}
2) namespace
#include <iostream>
#include "aa.h"
using std::cout;
using std::endl;
int add(int x, int y) { return x+y+1; }
int main()
{
cout << AA::add(1,2) << endl; //aa.h의 namespace
cout << ::add(1,2) << endl; //전역 namespace
return 0;
}
//aa.h 헤더파일
namespace AA
{
int add(int x, int y)
{
return x + y ;
}
}
5. inline 함수
- 함수 호출/반환하는데 시간 지체(overhead)가 생김
- 장점: inline 함수의 코드가 직접 삽입되어 시간 지체를 줄임
- 단점: 여러 번 호출하게 되면 프로그램의 크기가 커져 실행 속도가 늦어질 수 있음
6. 객체의 멤버 호출
▶ 직접 참조 연산자: .
객체.멤버함수( ) ex) happy.getAge( )
▶ 간접 참조 연산자: ->
객체->멤버함수( ) ex) pHappy.getAge( )
'C++' 카테고리의 다른 글
[C++] 7. 함수 오버로딩과 디폴트 매개변수 (0) | 2021.11.09 |
---|---|
[C++] 5. const (0) | 2021.11.02 |
[C++] 4. 생성자와 소멸자 (0) | 2021.10.19 |
[C++] 1. 객체 지향 언어 (0) | 2021.10.04 |
[C++] 기본 형식 (0) | 2021.09.28 |
댓글