C基础练习
思维导图
练习:
一、
#include <iostream>#include <cstring>#include <cstdlib>#include <unistd.h>#include <sstream>#include <vector>#include <memory>using namespace std;class myDouble{private://整数部分int a;//小数部分int b;public:myDouble(int a,int b):a(a),b(b){}void show(){cout<<a<<"."<<abs(b)<<endl;}myDouble operator+(const myDouble& r){myDouble sum(0,0);sum.a=this->a+r.a; sum.b=this->b+r.b;return sum;}myDouble operator-(const myDouble& r){myDouble sum(0,0);sum.a=this->a-r.a;sum.b=this->b-r.b;return sum;}myDouble operator*(const myDouble& r){myDouble sum(0,0);sum.a=this->a*r.a;sum.b=this->b*r.b;return sum;}};int main(int argc,const char** argv){myDouble x(3,5);x.show();myDouble y(1,4);y.show();myDouble sum=x+y;sum.show();myDouble sum1=x-y;sum1.show();myDouble sum2=x*y;sum2.show();}
这里不考虑进位等问题,仅进行简单计算
结果:
练习二、
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <unistd.h>
#include <sstream>
#include <vector>
#include <memory>using namespace std;class myOut{
private:public:void operator<<(int a){printf("%d\n",a);cout<<a<<endl;}void operator<<(double a {printf("%f\n",a);cout<<a<<endl;}void operator<<(const char* a){printf("%s\n",a)cout<<a<<endl;}void operator<<(ostream&(*endl)(ostream&)){printf("\n");}
};
/*ostream& operator<<(ostream& out,const myOut& r)
{out<<r;
*/
int main(int argc,const char** argv){myOut out;out<<1;out<<3.14;out<<"hello";out<<endl;return 0;
}
结果: