오버로딩
함수의 구별
-시그니쳐가 같은 함수는 하나만 정의 (동일한 클래스 내부)
-시그니쳐=> 함수이름, 형식 매개 변수의 수와 자료 유형
함수 오버로딩
-동일한 이름의 함수를 중복정의하는 것 => 이름만 같고 인자의 개수와 타입은 다른것)
-조건 => 매개 변수의 개수 혹은 타입이 일치하지 않아야함
=> 호출할 함수를 매개변수의 정보까지 참조해서 호출
-mangling: func(int) => func_int로 변환해서 참조
디폴트 매개 변수
-전달되지 않은 인자를 대신하기 위한 기본 값이 설정되어 있는 변수
int addInteger(int x, int y)
{
return x + y;
}
double addDouble(double x, double y)
{
return x + y;
}
오버라이딩
부모클래스와 자식클래스 사이에서 일어나는 재정의
#include <iostream>
using namespace std;
class A {
public:
void over() { cout << "A 클래스의 over 함수 호출!" << endl; }
};
class B : public A {
public:
void over() { cout << "B 클래스의 over 함수 호출!" << endl; }
};
int main()
{
B b;
b.over();
return 0;
}
객체와 클래스
클래스란?
-클래스는 객체를 만들기 위한 모형 또는 틀
-객체를 만들려면 반드시 객체의 다양한 특성
객체란?
-클래스에서 하나의 구체적인 표현(instance)
-Instantiation
복사생성자
class sanghoon{
int age;
string name;
public:
sanghoon(); //constructor
sanghoon(int age, string name);
~sanghoon(); //destructor
sanghoon(const sanghoon& obj); //copy constructor
}
Static
여러 객체가 하나의 변수를 공유하고자 할 경우 static 변수를 이용해야하고 static 변수는 클래스 변수라고도 부른다.
compile타임에 주소/크기가 결정되어 main함수가 실행되기 전에 static area에 자리를 잡는다. 따라서 public 변수인 경우 객체 생성이전에도 접근이 가능하다. static 변수는 각각의 객체의 멤버로 존재하는 것이 아니고 접근할 수 있는 권한만 부여된 것이다.
위와 같이 stack에 존재하는 s1, s2, s3 지역변수들을 static area의 count static 변수가 참조할 권한이 존재한다.
run-time 과정에서 메모리에 할당되는 dynamic binding에서 이용해야하는 new를 static 객체들은 이용할 필요없이 s1.count를 부를 수 있다.
'Quality control (Univ. Study) > Data structure' 카테고리의 다른 글
ArrayStack(1) (0) | 2022.11.18 |
---|---|
자료구조론(5) (1) | 2022.10.06 |
자료구조론(4) (1) | 2022.10.03 |
자료구조론(2) (0) | 2022.09.12 |
자료구조론 기초(1) (0) | 2022.09.04 |