C++中的overload,隐藏、override有什么区别?
2013-05-26 14:50
405 查看
1. overload:
#include <iostream>
using namespace std;
void print(int x)
{
cout << "int C++" << endl;
}
void print(char c)
{
cout << "char C++" << endl;
}
int main()
{
int n = 1;
char ch = 'a';
print(n);
print(ch);
return 0;
} 结果为:
int C++
char C++
2. 隐藏:
#include <iostream>
using namespace std;
class A
{
public:
void print(int x)
{
cout << "int C++" << endl;
}
};
class B : public A
{
public:
void print(int x)
{
cout << "char C++" << endl;
}
};
int main()
{
int n = 1;
char ch = 'A';
A a;
a.print(n);
B b;
b.print(ch);
return 0;
}
结果为:
int C++
char C++
下面再看一个隐藏的例子(千万要注意,下面这个程序并不是override):
#include <iostream>
using namespace std;
class A
{
public:
virtual void print(int x)
{
cout << "int C++" << endl;
}
};
class B : public A
{
public:
virtual void print(char x)
{
cout << "char C++" << endl;
}
};
int main()
{
int n = 1;
char ch = 'A';
A a, *p;
p = &a;
p->print(n);
B b;
p = &b;
p->print(ch);
return 0;
} 结果为:
int C++
int C++
3. override
#include <iostream>
using namespace std;
class A
{
public:
virtual void print(int x)
{
cout << "int C++" << endl;
}
};
class B : public A
{
public:
virtual void print(int x)
{
cout << "char C++" << endl;
}
};
int main()
{
int n = 1;
char ch = 'A';
A a, *p;
p = &a;
p->print(n);
B b;
p = &b;
p->print(ch);
return 0;
}
结果为:
int C++
char C++
#include <iostream>
using namespace std;
void print(int x)
{
cout << "int C++" << endl;
}
void print(char c)
{
cout << "char C++" << endl;
}
int main()
{
int n = 1;
char ch = 'a';
print(n);
print(ch);
return 0;
} 结果为:
int C++
char C++
2. 隐藏:
#include <iostream>
using namespace std;
class A
{
public:
void print(int x)
{
cout << "int C++" << endl;
}
};
class B : public A
{
public:
void print(int x)
{
cout << "char C++" << endl;
}
};
int main()
{
int n = 1;
char ch = 'A';
A a;
a.print(n);
B b;
b.print(ch);
return 0;
}
结果为:
int C++
char C++
下面再看一个隐藏的例子(千万要注意,下面这个程序并不是override):
#include <iostream>
using namespace std;
class A
{
public:
virtual void print(int x)
{
cout << "int C++" << endl;
}
};
class B : public A
{
public:
virtual void print(char x)
{
cout << "char C++" << endl;
}
};
int main()
{
int n = 1;
char ch = 'A';
A a, *p;
p = &a;
p->print(n);
B b;
p = &b;
p->print(ch);
return 0;
} 结果为:
int C++
int C++
3. override
#include <iostream>
using namespace std;
class A
{
public:
virtual void print(int x)
{
cout << "int C++" << endl;
}
};
class B : public A
{
public:
virtual void print(int x)
{
cout << "char C++" << endl;
}
};
int main()
{
int n = 1;
char ch = 'A';
A a, *p;
p = &a;
p->print(n);
B b;
p = &b;
p->print(ch);
return 0;
}
结果为:
int C++
char C++
相关文章推荐
- C++学习之多态及重载(overload),覆盖(override),隐藏(hide)的区别
- C++中继承技术引发的问题:重载(overload),覆盖(override)和隐藏(hide)的区别
- C++多态及重载(overload),覆盖(override),隐藏(hide)的区别
- 转---C++学习之多态及重载(overload),覆盖(override),隐藏(hide)的区别
- 【C++基础】重载overload、重写(覆盖)override、隐藏hide的区别
- [转]C++中重载(overload)、覆盖(override)、隐藏(hide)的区别
- C++学习之多态及重载(overload),覆盖(override),隐藏(hide)的区别
- C++中继承技术引发的问题:重载(overload),覆盖(override)和隐藏(hide)的区别
- 关于C#和C++的重载(Overload)、隐藏(Hide)、覆盖(Override)几个区别比较和得出的疑问
- 重载(overload)、覆盖(override)、隐藏(hide)的区别
- 重载(overload)、覆盖(override)、隐藏(hide)的区别
- 函数重载(overload)、覆盖(override)、隐藏(hide)的区别
- 【C/C++】重载(overload),重写(override,或覆盖),隐藏
- C++中重载(overload)、重写(override,也叫做“覆盖”)和重定义(redefine)的区别?
- c++中 override 和 overLoad的区别
- C#中隐藏(new)和方法重写(override)和重载(overload)的区别
- 重载(overload)、覆盖(override)、隐藏(hide)的区别
- C#中隐藏(new)和方法重写(override)和重载(overload)的区别
- 重载(overload)、覆盖(override)、隐藏(hide)的区别
- 重载(overload)覆盖(override)与隐藏 的区别