본문/내용
현대 컴퓨터의 언어의 성향과 C++
-강력한 자료형의 구현(Strong data typing)
많은 자료형이 있다. 위에 그림과 같이 명확히 하는 역할들이 나눠져 있고, 거의 모든 분야의 역할들을 수행할 수 있다.
-엄격한 자료형의 검토(Strong type checking)
위의 그림과 같이 크기와 범위가 정해져 있다.
-메모리의 참조(Refence)기능
참조타입으로 변수만 선언했다면 그 변수에는 "아무것도 없다"가 된다.
new연산자를 이용해서 메모리를 생성해주는 순간에 비로소 참조타입의 변수에 값을 가지게 된다.
측 참조타입은 변수의 선언과 메모리의 생성이 완전히 분리되어 있다고 말할 수 있다.
대표적인 참조타입은 수없이 이야기해온 클래스이다.
using System;
publcik calss reSample
{
public int mycom = 0;
public int youcom = 0;
}//class
public class refSampleMain
{
public static void Main()
{
reSample rs = mull;//변수선언
rs = new refSample();//인스턴스할당(메모리생성)
}//class
수없이 이야기해오지마 참조타입의 변수를 선언만 하면 스택영역에 참조할 주소값을 가지기위한 정수형 4바이트의 메모리가
할당된다.
그렇다면 이시점에서 rs에는 null이 들어있다.
그런후 new연산자를 사용하여 메모리를 생성한다.
그렇다면 메모리를 사용하여 인스턴스가 생성된후 즉 메모리를 rs에라는 이름으로 메모리를 할당하는 후
rs에는 어떠한 데이터가 들어있을까??
참…
1. 접근 제한자
허용한다. 클래스내부의 멤버 함수에서도 이 멤버를 사용할 수 있고 클래스 외부에서도마찬가지다. private로 지정된 멤버는 외부 접근을 허용하지 않는다. 클래스 내부의 멤버 함수에서만 사용할 수 있을 뿐 외부에서는 이 멤버에
접근할수 없다.
//구초체적 접근
#include
using namespace std;
class point
[
int x:
int y:
]
iat main()
[
point pt;
pt,x = 100;
pt,y = 200;
cout << pt,x << end];
cout << pt,y << end];
return 0;
실행결과
cannot access private member declared in class poing
이 소스 코드는 컴파일되지 않는다. 컴파일러는 `point 클래스에서 private로 선언된 멤버에는 접근할수가 없다." 라는 메시지를 출력한다. x와y는 point라는 클래스의 멤버이고, 클래스는 외부에서 들어오는 접근을 근본적으로 차단하는 특성이 있다.
class point
[
private //보이지 않을 뿐 실제 설정은 이렇다.
int x;
int y;
];
클래스에서 아무런 접근 제한자를 기술하지 않는 것은 실제로는
private 설정을 제공한 것과 같은 것이다.
1. 접근 제한자
접근제한자는 외부에서 멤버 개체를 사용하려는 시도를 허용할것인지 여부를 지정한다. 일단, public과 private에만 주목하자. pubilc은 무조건 문을 활짝 열고 private는 무조건 문에 자물쇠를 달아잠근다. 현재로서는 이 차이만 알면 된다. protected는 상속이라는 요소와 만났을 때 다시 이야기할 기회가 있을 것이다. 물론, pubilc과 private 역시 상속과