클래스란? 쉽게 말하자면 C의 구조체에서 확장된 C++의 구조체의 또 다른 이름이다. 클래스는 변수와 함께 함수까지도 포함시킬 수 있다. 그러면 구조체와 클래스의 차이점이 무엇일까? 구조체와 클래스의 차이점은 기본 접근 제한자의 차이일뿐, 그 이상 다른 게 없다. 구조체 같은 경우는 기본 접근 제한자가 public이며, 클래스의 기본 접근 제한자는 private으로 제한되어 있다. ‘둘다 동일한 기능인데 왜 사라지지 않아’ 라는 질문 → C언어와의 하위 호환성을 위해서 남겨둠. 우리가 C언어에서 보았던 구조체 예제에서, struct를 class로만 바꾸어 주어도 됨. 조심해야할 부분 → 기본 접근자가 다름, 무작정 클래스에 접근하려하면 컴파일러가 에러를 내보낼 수도 있다. 이제 객체지향 프로그래밍(OOP..
C++98
C++에서 네임스페이스는 식별자(변수, 함수, 클래스 등)를 그룹화하고 겹치지 않는 범위(scope)를 제공하는 방법이다. 네임스페이스를 사용하면 코드의 이름 충돌을 방지하고 라이브러리, 프레임워크 또는 여러 개발자가 작성한 코드를 효과적으로 통합할 수 있다. 예제 // 네임스페이스 정의 namespace MyNamespace { int x; // 변수 x를 MyNamespace 네임스페이스 안에 정의 void myFunction(); // 함수 myFunction을 MyNamespace 네임스페이스 안에 정의 } // 네임스페이스의 사용 int main() { MyNamespace::x = 5; // MyNamespace 네임스페이스의 변수 x에 접근 MyNamespace::myFunction(); /..
c++ -Wall -Wextra -Werror -std=c++98 std=c++98란? std=c++98은 C++ 컴파일러에서 사용되는 옵션 중 하나로, C++98 표준을 사용하여 소스 코드를 컴파일하도록 지시한다. 이 옵션은 C++ 표준 라이브러리와 언어 기능을 C++98 표준에 따라 컴파일러가 처리하도록 한다. C++98은 1998년에 처음으로 C++ 표준으로 채택된 버전으로, 이전 버전인 C++98 표준 이전의 C++ 언어 버전과 비교하여 새로운 기능과 개선 사항을 도입하였음. 현재로서는 매우 오래된 표준이며, C++ 언어는 그 이후에도 여러 번의 표준 업데이트를 거쳐 발전해왔다고 한다. C++ 표준의 후속 버전에는 C++11, C++14, C++17, C++20 및 이후 버전이 있으며, 각각 새로..