멤버데이터 2

06. C++_기반클래스 멤버데이터 초기화

C++ 에서 기반 클래스의 데이터를 초기화하는 것은 주로 기반 클래스의 생성자(constructor)에서 수행됩니다.기반클래스(가전)에서 여러 파생클래스를 선언한 후(냉장고, TV, 에어컨) 파생클래스의 생성자를 호출하여 기반클래스의 멤버데이터를 초기화하기 위한 방법에 대해 알아보겠습니다.#include class Appliance{ std::string name; int powerConsumption;public: // 2. Appliance 의 생성자(2 augment)에서 자신의 멤버를 초기화 한다. Appliance(const std::string& name, int power) : name(name), powerConsumption(power) {}};class Airconditioner : ..

카테고리 없음 2024.05.15

03. C++_invoke

일반적으로 클래스의 멤버함수를 호출할 때 멤버함수와 함께 객체의 정보가 함께 전달됩니다. 따라서 static 이 아닌 멤버 함수는 함수가 호출될 때 컴파일러가 객체의 객체의 정보 또한 함수의 인자로 전달을 하는데 이것을 thiscall이라고 합니다.  예를 들어 인자가 1개인 멤버 함수 mf1(int a)가 있다고 했을 때, 실제 객체가 함수를 호출할 때에는 mf1(&pt, int a)와 같이 2개의 인자를 전달하는 형태로 바뀝니다.  멤버 데이터는 객체당 한개씩 생성되는 반면, 멤버 함수는 여러 객체가 있어도 하나만 존재하는데 컴파일러에서 멤버함수를 호출할 때 객체에 대한 정보를 보내주기 때문에 멤버함수의 인자가 어떤 객체의 멤버인지 알 수 있습니다. class Point{ int x{0}; int y..

C++ 2024.03.24