티스토리 뷰

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
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday