This is the question: and at the last there is the error. #include<iostream.h>
#include<string.h>class guess
{
private:
long clootie;
long chkprime;
long count;
int flag;
long digit1,digit2,digit3;
public:
guess(long init);
long getprime(long num);
~guess();
};
guess::guess(long init)
{
clootie = init;
flag=0;
}
long guess::getprime(long num)
{
if(num%2==0)
return 0;
for(count=2;count<num/2;count++)
{
if(num%count==0)
{
flag +=1;
break;
}
}
if(!flag)
return num;
else
return 0;
}
guess::~guess()
{
for(digit1=1;digit1<clootie;digit1++)
for(digit2=1;digit2<clootie;digit2++)
for(digit3=1;digit3<clootie;digit3++)
{
if(getprime(digit1)+getprime(digit2)+getprime(digit3)==clootie)
cout<<endl<<"The digit is:"<<clootie<<"=";
cout<<digit1<<"+"<<digit2<<"+"<<digit3;
}
}
void main()
{
long n;
cout<<"Please input a digit:";
cin>>n;
guess x=new guess(n);
}The error info:Compiling...
com.cpp
D:\program\com.cpp(59) : error C2440: 'initializing' : cannot convert from 'class guess *' to 'class guess'
No constructor could take the source type, or constructor overload resolution was ambiguous
Error executing cl.exe.com.exe - 1 error(s), 0 warning(s)
#include<string.h>class guess
{
private:
long clootie;
long chkprime;
long count;
int flag;
long digit1,digit2,digit3;
public:
guess(long init);
long getprime(long num);
~guess();
};
guess::guess(long init)
{
clootie = init;
flag=0;
}
long guess::getprime(long num)
{
if(num%2==0)
return 0;
for(count=2;count<num/2;count++)
{
if(num%count==0)
{
flag +=1;
break;
}
}
if(!flag)
return num;
else
return 0;
}
guess::~guess()
{
for(digit1=1;digit1<clootie;digit1++)
for(digit2=1;digit2<clootie;digit2++)
for(digit3=1;digit3<clootie;digit3++)
{
if(getprime(digit1)+getprime(digit2)+getprime(digit3)==clootie)
cout<<endl<<"The digit is:"<<clootie<<"=";
cout<<digit1<<"+"<<digit2<<"+"<<digit3;
}
}
void main()
{
long n;
cout<<"Please input a digit:";
cin>>n;
guess x=new guess(n);
}The error info:Compiling...
com.cpp
D:\program\com.cpp(59) : error C2440: 'initializing' : cannot convert from 'class guess *' to 'class guess'
No constructor could take the source type, or constructor overload resolution was ambiguous
Error executing cl.exe.com.exe - 1 error(s), 0 warning(s)
要么就直接在栈上定义对象,也省得后面还要delete。
guess x(n);
void main()
{
long n;
cout<<"Please input a digit:";
cin>>n;
guess* x=new guess(n);
}