你好,问你一个问题。我在一个帖子上看到你写的程序。如下:
#include <time.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include "D:\CopyrightByGuoXianqiang\HugeCalc\HugeCalc_API\CppAPI\Include\HugeCalc.h" // 公共接口
#include "D:\CopyrightByGuoXianqiang\HugeCalc\HugeCalc_API\CppAPI\Include\HugeInt.h" // 10进制系统
#include "D:\CopyrightByGuoXianqiang\HugeCalc\HugeCalc_API\CppAPI\Include\HugeIntX.h" // 16进制系统
#pragma message( "automatic link to D:/CopyrightByGuoXianqiang/HugeCalc/HugeCalc_API/CppAPI/Lib/HugeCalc.lib" )
#pragma comment( lib, "D:/CopyrightByGuoXianqiang/HugeCalc/HugeCalc_API/CppAPI/Lib/HugeCalc.lib" )
#define integer CHugeInt
#define MAX 1000
int sum_of_digits(integer u)
{
int sum=0;
integer d(u);
while(d!=0)
{
sum+=d%10;
d/=10;
}
return sum;
}
int main()
{
int i,j;
srand(time(NULL));
for(i=0;i<MAX;i++)
{
integer x;
x.Random(77);
x+=1-x%3;
for(j=0;j<MAX;j++)
{
integer y(x*x);
if(sum_of_digits(y)==772)
{
printf("%s, %d, %s\n",x.GetStr(FS_NORMAL),x%3,y.GetStrA(FS_NORMAL));
return 0;
}
x+=3;
}
}
}
为什么我的VC6.0编译出现如下错误:
error C2664: 'sum_of_digits' : cannot convert parameter 1 from 'class CHugeInt' to 'class CHugeInt'
No copy constructor available for class 'CHugeInt'
Error executing cl.exe.
望您解答!
-
duz 回复于:2008-09-15
-
我是在VC2005上编译的。
不能通过编译有几个可能:
i)我们使用的GuoXianqiang的HugeCalc版本不同
ii)编译器版本不同引起
我不知道你这里出错信息在第几行,你可以将函数申明
int sum_of_digits(integer u)改为
int sum_of_digits(const integer& u)
看看