---- 整理自狄泰软件唐佐林老师课程
#include
#include
using namespace std;
class Parent
{
public:
int mi;
};
class Child : public Parent
{
public:
int mi;
};
int main()
{
Child c;
c.mi = 100; // mi 究竟是子类自定义的,还是从父类继承得到的?
return 0;
}


#include
#include
using namespace std;
class Parent
{
public:
int mi;
Parent() {
cout << "Parent() : " << "&mi = " << &mi << endl;
}
};
class Child : public Parent
{
public:
int mi;
Child() {
cout << "Child() : " << "&mi = " << &mi << endl;
}
};
int main()
{
Child c;
c.mi = 100;
c.Parent::mi = 1000;
cout << "&c.mi = " << &c.mi << endl;
cout << "c.mi = " << c.mi << endl;
cout << "&c.Parent::mi = " << &c.Parent::mi << endl;
cout << "c.Parent::mi = " << c.Parent::mi << endl;
return 0;
}

#include
#include
using namespace std;
class Parent
{
public:
int mi;
void add(int v) {
mi += v;
}
void add(int a, int b) {
mi += (a + b);
}
};
class Child : public Parent
{
public:
int mi;
// 子类中无 add 成员函数
};
int main()
{
Child c;
c.mi = 100;
c.Parent::mi = 1000;
cout << "c.mi = " << c.mi << endl;
cout << "c.Parent::mi = " << c.Parent::mi << endl;
c.add(1);
c.add(1, 1);
cout << "c.mi = " << c.mi << endl;
cout << "c.Parent::mi = " << c.Parent::mi << endl;
return 0;
}

#include
#include
using namespace std;
class Parent
{
public:
int mi;
void add(int v) {
mi += v;
}
void add(int a, int b) {
mi += (a + b);
}
};
class Child : public Parent
{
public:
int mi;
void add(int x, int y, int z) { // 子类中的 add 会同名覆盖掉父类中的两个 add
// 子类中的函数将隐藏父类中的同名函数
// 子类无法重载父类中的成员函数(因为不在同一作用域))
mi += (x + y + z);
}
};
int main()
{
Child c;
c.mi = 100;
c.Parent::mi = 1000;
cout << "c.mi = " << c.mi << endl;
cout << "c.Parent::mi = " << c.Parent::mi << endl;
c.add(1);
c.add(1, 1);
c.add(1, 1, 1);
cout << "c.mi = " << c.mi << endl;
cout << "c.Parent::mi = " << c.Parent::mi << endl;
return 0;
}

#include
#include
using namespace std;
class Parent
{
public:
int mi;
void add(int v) {
mi += v;
}
void add(int a, int b) {
mi += (a + b);
}
};
class Child : public Parent
{
public:
int mi;
void add(int x, int y, int z) { // 子类中的 add 会同名覆盖掉父类中的两个 add
// 子类中的函数将隐藏父类中的同名函数
// 子类无法重载父类中的成员函数(因为不在同一作用域))
mi += (x + y + z);
}
};
int main()
{
Child c;
c.mi = 100;
c.Parent::mi = 1000;
cout << "c.mi = " << c.mi << endl;
cout << "c.Parent::mi = " << c.Parent::mi << endl;
cout << endl;
c.Parent::add(10);
c.Parent::add(10, 10);
c.add(1, 1, 1);
cout << "c.mi = " << c.mi << endl;
cout << "c.Parent::mi = " << c.Parent::mi << endl;
return 0;
}
