我的面向对象编程思想6
让我先给你一个想法,让你理解,然后我们谈谈。
在java:
1。函数重载是一种方法,声明多个同音词中的一类,但有不同的参数个数和参数的类型。
2。函数重构指的是在子类中声明与父类同名的方法,从而覆盖父类的方法。重构解决了子类和父类之间的差异问题(我将详细阐述继承的讨论)。
在C++:
1个概念。重载数相同。
2。重构的概念是不同的,和虚拟函数,具有C++中一个更大的作用。在这里更详细的内容太多介绍!
事实上,你不熟悉的重负荷的概念,我相信你已在规划与您联系。哈哈 uff01let带一个运算符重载的一个例子,你会发现(java不支持这个功能)我们定义三个整数变量:
int I1 = 2,I2 = 3,i3 = 0;
U3000 U3000
i3 = I1 + I2;
U3000 U3000
此时i3 = 5;此外数实现两个数增加操作功能。然而,我们现在已经定义了三个字符串变量:
U3000 U3000
字符串str1 =静,str2 =魏,STR3 =;
U3000 U3000
STR3 = str1 + str2;
在这一点上创建一个内容为经纬;此外数实现两个字符串添加操作功能。这也是一个加号,可以添加两个整数变量,或将两个字符串类型的变量在一起。同一运营商实现了不同的功能--这就是所谓的操作符重载(嘿嘿,我说你一定见过它)!它不象中国的一句话。我需要解释的是,运营商在C++重载不那么简单。比如,我们可以在添加对象的两种自定义类型执行运算。这写的是简单明了,很实用。当然,有太多的重载的运算符的话题。再看一遍这本书。
我们把经营者的主题功能,我们一直强调的是对象的调谐方法的方法的名称是对象实际上是转移目标。现在我们要重新加载的方法,即一个函数,定义了一系列相同的名称,这样计算机不会迷茫的时候打电话吗我认为它不应该,哦,因为函数的名称是相同的,我们在调用函数时将参数传递给他。信息不是一个参数,而是一个传递参数的参数(信息不是参数)!但是,由于参数的类型、参数的数量和返回值的类型,我们可以区分同一名称的函数!
员工公共课{
U3000 U3000
公共雇员(字符串n、int a、char、浮点E、布尔l)
U3000 U3000
name = n;设置雇员名
U3000 U3000
年龄=
U3000 U3000
性=;
U3000 U3000
薪酬= E; / /薪水
U3000 U3000
午餐=工作人员午餐
U3000 U3000
}
U3000 U3000
公共(雇员){请注意,此函数没有参数
U3000 U3000
名称= JW;
U3000 U3000
年龄= 20岁;
U3000 U3000
性=W;
U3000 U3000
薪酬= 99;
U3000 U3000
午餐=真
U3000 U3000
}
U3000 U3000
等待…
U3000 U3000
};
看,有两个函数在类中具有相同的名称。我们如何知道何时使用该版本的功能正如我刚才说的,它可以由参数的类型、参数的数量、返回值的类型来决定。现在我们继续进行实验,我们用两个具有参数的对象中的一个来创建一个构造函数,第二个对象调用默认构造函数:
经纬=新员工(经纬)
U3000 U3000
FlashMagic =新(员工); / /创建这个对象调用构造函数的值
U3000 U3000
结果如何让我们一起看吧!
U3000 U3000
Jingwei在这个对象:在FlashMagic对象:
名字叫JW经纬
20岁,20岁
U3000 U3000
性-性
U3000 U3000
100薪酬99薪酬
U3000 U3000
午餐假午餐
看,虽然这两个名字完全相同的功能,他们做不同的工作内容。哈哈 uff01on函数重载,我们期望在这里,我相信你有一个大的印象,但更多的细节还需要你的努力!
重载的普通函数与重载构造函数相同,但他有一个指针!这通常是对当前对象的引用。在这种情况下,如果包含两个以上的对象,这个指针将被使用。每个成员函数都有一个指针,这是一个隐藏参数,而这个指针只对调用它的对象!我说过只有一种方法,这个对象有它自己的属性。当对象首先调用方法为属性时,他如何判断调用不是自己的属性呢这需要这个指针拍手。
有没有关于拷贝构造函数,多讨论内联函数、虚函数、模板等,因为似乎在java是没有这样的。但我要提醒你,在C++中,在类中定义的函数自动转换为内联函数,这似乎与思想冲突我之前提到的。因为内联函数的目的是为了减少函数调用的成本!哈哈 uff01i没有去,要么,请指向一个或两个虾。谢谢!