类 "overloading"
Class "overloading"
本文关键字:overloading 更新时间:2023-10-16
在C++中,有没有一种方法可以让编译器自动决定您需要哪个函数?你们都知道:
void F (int i);
void F (char *f);
...
int k = 0;
F(k);
char *f = "0";
F(f);
或通过模板:
template <typename T>
void F(T i);
...
F(k);
F(f);
什么是阶级层面的类比?有没有一种方法可以让编译器决定您需要哪个类?
这并不是真正需要的,因为您必须声明一个属于特定类的对象。但是,如果有基类和从基类继承的其他类,则可以使用虚拟函数,即使有指向基类的指针或引用,编译器也会选择正确的成员函数。
实际上,这是最后一个通常被称为多态性的部分,您对函数所做的实际上是重载。
不,与函数不同,不能有两个同名的类。
可以使用模板参数对类进行参数化,模板参数有点相似,但不相同。或者,更常见的情况是,您可以创建一个工厂,该工厂将根据您传递给它的参数创建多种类型之一的对象。在后一种情况下,对象通常扩展一个公共超类。
相关文章:
- Overloading C++
- C++ Overloading Macros
- 通过Overloading Operator []访问自定义数组包装器中的元素
- Overloading new
- 如何修复MSVC++(Microsoft Visual studio)中"macro overloading"的可变参数宏相关问题?
- 从输入文件中读取c ,具有iStream Operator Overloading
- overloading [] and , c++11
- 错误C2244无法将函数定义与CPP // Operator Overloading中的现有声明匹配
- Overloading STD :: Whow()无法转换const char*
- Overloading Iostream C++
- C++ "overloading"第二个默认函数参数
- Operator= overloading
- Class overloading?
- Overloading+运算符必须采用无参数链表或单参数链表
- C++ class iostream overloading
- 类 "overloading"
- Overloading a macro
- Overloading == and !=
- C++ double *() () { } overloading?
- overloading *