Programming22 [c++] Upcasting class Animal { public: int age; }; class Dog : public Animal { public: int color; }; int main() { Dog d; Dog* p1 = &d; Animal* p3 = &d; p3->age = 10; static_cast(p3)->color = 10; } "Animal" 클래스는 age라는 public 멤버 변수를 가지고 있습니다. "Dog" 클래스는 Animal 클래스를 public으로 상속받고 있습니다. 따라서 Dog 클래스는 Animal 클래스의 age 멤버 변수를 상속받고, 추가로 color라는 public 멤버 변수를 가지고 있습니다. Dog 객체 d를 만들고, d의 pointer p1에 d(Dog 객체)의 주소 값을 입력해준다.. 2023. 11. 28. c++ 생성자 우선 예시 코드부터 살펴보자. #include #include class Person { std::string name; int age; public: Person(const std::string& name, int age) : name(name), age(age){} }; class Student : public Person { int id; public: Student(const std::string& name, int age, int id) :Person(name, age), id(id){} }; int main() { Student s("kim", 28, 15); Person p1("kim", 28); } Class Person은 string name과, int age 2가지의 멤버 변수를 가진다.. 2023. 11. 28. 이전 1 ··· 3 4 5 6 다음