由买买提看人间百态

topics

全部话题 - 话题: func1
1 (共1页)
z****e
发帖数: 54598
1
来自主题: Programming版 - oop还是跟fp是对立的
最简单例子,就不说场景
func1(Object1 obj1)
func2(Object2 obj2)
你觉得这两个是不是func1&obj1, func2&obj2两个紧密耦合了起来?
对比
obj1.func1
obj2.func2
其实是一回事
因为任何改动obj1的地方都会牵涉func1的改动
对吧?
对比
func1(Map map1)
func2(Map map2)
是不是就要更为松散呢?
这个时候你叠加func1&func2就很容易
当然一般这么理想是比较难做到的
多数时候还是这样
func1(Object obj)
func2(Object obj)
因为obj不变,所以func1(func2(obj))的叠加就很容易
但是如果obj在func1&func2中是不一样的
就变成紧耦合了,func和obj无法分离
所以fp不适合做这种一堆对象的场景,如果都是information
也就是map&list,就很容易了
沙发就在说这个,你回的一大通,我还以为你知道我在说啥呢
s****n
发帖数: 1237
2
来自主题: Programming版 - 请教个virtual function的问题
下面这段代码输出的是 Class B func1 x = 2, 我有几个疑问
1. 为啥调用的是B的func1但是x却是用了A的缺省值?
2. B的func1我特地设为private,为啥还是能调用?我试过直接B ojbB,就不能用ojbB
.func1();
3. 这里面涉及哪些相关的知识点,有什么好的quick tutorial可以推荐。
谢谢。
#include
using namespace std;
class A
{public:
virtual void func1 (int x = 2) {
cout << "Class A func1 x = " << x << "\n";
}
};
class B: public A
{private:
virtual void func1 (int x = 8){
cout <<"Class B func1 x = " << x << "\n";
}
};
void main () {
A *aPtr = new B;
aPtr -> func
a*****e
发帖数: 1700
3
来自主题: Programming版 - oop还是跟fp是对立的
我觉得你要说的是:
func1(Object obj)
func2(Object obj)
这种写法,你在 func1 和 func2 的 body 里面只知道对象是 Object,从而不能谈论
更多。
换成 OO 的方式, obj->func1() obj->func2(),只需要知道 Object class 里面有
func1 和 func2 两个成员函数,而不需要知道 obj 具体是 Object class 还是它的
sub class。通过 sub class 来 overload method 可以实现更多功能。
这是你的意思,对不对?
这种 OO 里面的做法换成用 Haskell:
class ObjectClass a where
func1 :: a -> ...
func2 :: a -> ...
type ObjectType1 = ...
type ObjectType2 = ...
instance ObjectClass ObjectType1 where
func1 = ...
func2 = ...
instance ObjectC... 阅读全帖
x****u
发帖数: 41
4
来自主题: Programming版 - JQuery (转载)
是这样的,javascript不允许跨域调用xmlhttprequest请求,但是有一种办法变通,就
是叫jsonp的办法,实际上它是动态加载了一个javascript,比如你的例子:
http://google.com/finance/info?infotype=infoquoteall&q=SHMN,^DJ
注意后面一个参数是问号,实际上在调用$.getJSON的时候是这样的:
1,定义一个函数,比如func1
2,将url修改为http://google.com/finance/info?infotype=infoquoteall&q=SHMN,^DJI,^IXIC,^BSESN,^SPX,^FTSE&callback=func1
3,动态创建一个script node,src为http://google.com/finance/info?infotype=infoquoteall&q=SHMN,^DJI,^IXIC,^BSESN,^SPX,^FTSE&callback=func1,相当于动态添加了一个html code