class A { private: int num; public: A() { cout<<"Default constructor"<< endl; } ~A() { cout<<"Desconstructor"<< endl; cout<<num<<endl; } A(const A &a){ cout<<"Copy constructor"<<endl; } void operator=(const A &a) { cout<<"Overload operator"<<endl; } void SetNum(int n) { num=n; } };
void main() { A a1; A a2(a1); A a3=a1; A &a4=a1; a1.SetNum(1); a2.SetNum(2); a3.SetNum(3); a4.SetNum(4); }
设计一个函数,形式如: int func(unsigned int),要求求出不大于输入参数的最大的素数,比如输入12,返回11。 int proc(int temp) { int i,j; for (i=temp;i>2;i--) { for (j=2;j<=i;j++) if (i%j==0) || (j>sqrt(temp)) break; if (j>sqrt(temp)) return i; } return 2; } 优化了一下算法,能提高些许效率吧, 整个调试 函数 : #include<iostream.h> #include<math.h> #include<stdio.h>
int func(unsigned int t) { if(t<2) return -1;//没有合要求的数 int i,k; i=t%2?t:t-1; //取得小于所给数的奇数 for(;i>2;i-=2) //从最大奇数开始往下找素数 { for(k=2;k<=sqrt(i);k++) if(i%k==0) break; //判断是否有数可被整除 if(k>sqrt(i)) return i; //没有,为素数,返回 } return 2; } void main() { cout<<"input a number"<<endl; int tt; cin>>tt; cout<<"is:"<<func(tt)<<endl; }