>重载编译

问题

类模板重载《,》在VC6,VS2008中编译无法通过

解决方法:

VS2008

需要在友元函数声明前加上template<Class Type>,否则永远都是LINK2019 ,不明白为何。

VC6

出现private成员无法访问。将函数的重载实现放在类体内解决。

这样在两个编译器下都可以通过,但是不知道为何如此。

 

看了时空复杂度,那个计算啊,好像脑袋退化了,只是求和却花费了很多的时间。

算法:输入,输出,确定性,有穷性,有效性。还是认为算法和程序没有区别。即便程序不一定在有穷步后结束,那么可以认为该算法是出于循环的目的。

算法:正确性,可使用性,可读性,效率,容错性

效率:后期时间测试,事前估计,空间复杂度,时间复杂度(程序步)

 

线性,非线性,逻辑,物理

大致如下:

函数特征

数据声明

作用域

类,结构,联合

对象

输入输出

参数传递

重载 函数名,操作符

动态分配 C++,C区别

友元

内联

算了几个程序步,其实只是求和,花了很久很久的时间,大概,脑子不用是不灵光了的。

 

 

再看模板,只是软件复用?C++ Primer中但是模板声明时的规矩便有8,9条之多。

       1.模板类型参数,模板非类型参数,所有的参数类型前均需要有class/typename;而typename较class晚,能明确定义后面的名字为类型;

       2.同一个参数名在列表中不可以重复 template<class A,class A>则为错误

       3. 参数名可以作为返回值

        template<typename A,typename B>

        A Fun(B);

        4.模板的多个声明和实现可以使用不同的类型名

         5. 全局变量和模板类型参数同名,且出现在之前,则该变量将被屏蔽;

         6.模板定义中的参数不可以与模板参数同名

         7.模板参数在函数参数表中可以出现的次数没有限制

         8. inline,extern 需要放在模板参数表之后。

         9.参数名可以在多个模板见重复使用。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值