티스토리 뷰
Inheritance
C++ commonly uses inheritance functionality to prevent unnecessary copy which could cause duplication and severe errors. It allows to create many similar classes from a base class and performs them differently. Even though parent class has many child classes, only the class, that we want to change, can be modified without affecting other classes. Less code and errors mean less expense in maintenance and upgrade.
Overriding
In C++, overriding can be used if you want to modify only a function of the derived class ignoring the function of the base class.
Memory Allocation & Deallocation processing in Inheritance. Memory Allocation order in Inheritance
First, allocation of memory space Second, running the Base class constructor Third, running the Derived class constructor Memory Deallocation order in Inheritance
First, calling the Derived class destructor Second, calling the Base class destructor Third, Memory is returned(Deallocation)
Example code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | class Animal { private: int weight; public: void setWeight(int weight) { this->weight = weight; } int getWeight() { return this->weight; } void print() { cout << "hello" << endl; } }; class Dog : public Animal { //Dog class inherit the parent class public: void print() { Animal::print(); //Only modified the function printf() redefined cout << "Print dog class" << endl; } }; int main() { Dog dog; dog.print(); Animal animal; Animal animal1; animal.setWeight(20); animal1.setWeight(30); cout << animal.getWeight() << endl; cout << animal1.getWeight() << endl; return 0; } | cs |
Result
'C++' 카테고리의 다른 글
Inline function in C++ (0) | 2018.11.09 |
---|---|
Copy constructor(Deep copy, Shallow copy) in C++ (0) | 2018.11.09 |
Constructor and Destructor in C++ (0) | 2018.11.06 |
Encapsulation (getters and setters) in C++ (0) | 2018.11.06 |
Reference in C++ (0) | 2018.11.06 |
- Total
- Today
- Yesterday
- repeat()
- code refactoring
- hackerrank javascript solution
- 프로그래머스 알고리즘
- rest parameter
- equals()
- Javascript Algorithm
- easy javascript algorithm
- math.max
- easy algorithm
- java
- algorithm
- spring boot application
- Object type casting
- hackerrank solution
- 프로그래머스 알고리즘문제
- HashMap
- javascript
- substring()
- math.abs
- compareTo()
- 알고리즘
- C++
- string class in java
- Collection Framework
- hackerrank javascript
- HackerRank Algorithm
- hackerrank
- 프로그래머스
- ... in Javascript
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 |