#include <iostream>
using namespace std;
class Base
{
protected:
int m_i;
public:
Base(int value)
: m_i(value)
{}
void print()
{
cout << "I'm base" << "\n";
}
};
class Derived : public Base
{
private:
double m_d;
public:
Derived(int value)
: Base(value)
{}
using Base::m_i; // m_i가 Derived 안에서는 public이 된다.
private:
using Base::print; // do not add () // 함수 이름만 있으면 된다.
void print() = delete; // 아예 delete를 해버리면 자식에서는 print를 접근 불가능하다.
};
int main()
{
Derived derived(7);
// derived.print(); private이기 때문에 접근 불가능.
return 0;
}