목록전체 글 (307)
Araina’s Blog
1. 다이내믹 메모리 컴퓨터가 사용하는 모든 데이터는 메모리 상에 저장됩니다. 배열(Array)의 경우 연속된 메모리 공간을 할당하여 여러 개의 데이터를 한꺼번에 관리하는 방법이지만 메모리 공간이 유동적으로 필요할 경우에 문제가 발생합니다. 이는 배열을 위한 메모리 공간을 할당한 이후에는 그 공간의 크기를 유동적으로 조절할 수 없기 때문입니다. 만약, 배열의 크기를 넘어갈 경우 오버플로우(Overflow) 에러가 발생하고, 배열의 크기보다 적게 사용할 경우 메모리 공간이 낭비되는 문제가 생깁니다. 포인터 변수는 '메모리 주소'를 저장하는 방식을 사용하기 때문에 이러한 문제에서 자유롭습니다. 포인터 변수는 아래와 같이 정의합니다. int *p; 2. & 연산자 포인터 변수는 값이 아닌 값의 주소를 저장합니..
1. 헷갈린다. 사진으로 깔끔하게 정리한 자료가 있어서 올려둔다. 헷갈려... 수고하셨습니다!
1. friend 키워드 friend 키워드는 수평적인 관계에 위치한 클래스 간의 멤버 변수를 공유하기 위해 주로 사용되는 키워드입니다. 타 클래스 내부에 접근하여 제한적으로 필요한 멤버 변수를 불러오는 기능을 하며, 확장성을 키울 수 있다는 장점이 있지만 캡슐화를 무시하므로 스파게티 코드가 만들어질 위험성이 따라옵니다. #include using namespace std; class People { private: string name; int age; public: string getName(); int getAge(); void setName(string name); void setAge(int age); string editInfo(string name, int age); void sayAge(P..
1. 클래스 데이터와 연산을 분리하면 데이터를 다양한 방식으로 활용할 수 있다는 장점이 있습니다. 클래스는 사용자가 메모리 표현에 접근하지 못하게 하여 타입을 더 쉽게 사용하고, 데이터를 일관되게 사용하여 메모리 표현을 보다 쉽게 개선하기 위해 활용됩니다. 이를 위해서는 모두가 접근해 사용할 수 있는 타입의 인터페이스와 외부에서는 접근할 수 없도록 제한하는 타입의 구현을 분리해야 하는데, 여기서 클래스가 등장합니다. 클래스는 일련의 멤버를 포함하며, 데이터나 함수, 타입을 멤버로 가질 수 있습니다. 인터페이스는 외부에서의 접근을 허용하므로 public으로 정의되며, private 멤버는 인터페이스를 통해서만 접근이 가능합니다. class Vector { public: Vector(int s) : elem..
1. 함수의 반환 값과 구조화된 바인딩 함수는 값을 반환할 수 있으나, 무조건 1개의 값만 반환할 수 있습니다. 하지만 함수의 반환값은 많음 멤버를 포함하는 객체 1개일 수도 있습니다. Python에서 다루는 튜플(Tuple)처럼 여러 값을 묶어 하나의 객체로 다루는 기능을 C++에서도 제공합니다. #include using namespace std; struct Entry { string name; int value; }; Entry read_entry(istream& is) { string s; int i; is >> s >> i; return {s, i}; } int main() { cout