回复 10楼 TonyDeng
是书中的原话,说起这本书,我真是够了,翻译很差劲,好多地方有错字,意思和事实相反的比比皆是,不知道是不是买到盗版了......
...... int global = 1000;//静态持续,外部链接(可在其他文件中访问) static int one_file = 50;//静态持续,内部链接(只在当前文件中访问) int main() { .... } void funct1(int n) { static int count = 0;//静态持续,无链接 } //所有类型的静态持续性变量在整个程序执行期间都存在,未被初始化的将被设置为0 void funct2(int q) { ........ } ........
//file01.cpp int blem; int main() { ...... } //file02.cpp extern int blem;//不能对其初始化,否则为重新定义变量,extern关键字失效 .....
[此贴子已经被作者于2016-1-21 16:51编辑过]
[此贴子已经被作者于2016-3-8 16:05编辑过]
//<<重载: #include<iostream> #include<ostream> #include<iomanip> using namespace std; class Time { private: int hours; int minutes; public: friend ostream& operator<<(ostream& os,const Time &t); Time(); Time(int,int); //void Show()const; ~Time(); }; Time::Time() { hours=0; minutes=0; } Time::Time(int hr,int mns):hours(hr),minutes(mns) { } Time::~Time() { cout<<"析构\n"; } /*void Time::Show()const { cout<<hours<<":"<<minutes; }*/ ostream& operator<<(ostream& os,const Time &t) { //os<<setw(2)<<setfill('0')<<t.hours<<":"<<setw(2)<<setfill('0')<<t.minutes; os<<setw(2)<<setfill('0')<<t.hours<<":"<<setw(2)<<setfill('0')<<t.minutes; return os; } int main() { Time time(1,5); //time.Show(); cout<<time<<endl; return 0; }
[此贴子已经被作者于2016-3-8 16:44编辑过]
void operator<<(ostream& os,const Time& t) { os<<setw(2)<<setfill('0')<<t.hours<<":"<<setw(2)<<setfill('0')<<t.minutes;//这样可以使用cout<< <对象名>打印时间对象 }
#include<fstream> ......... ofstream fout; fout.open("time.txt"); Time t(1,5); fout<<t; .....
ostream& operator<<(ostream& os,const c_name &obj) { os<<.......; return os; }
[此贴子已经被作者于2016-3-8 17:07编辑过]
#include <iostream> using namespace std; class complex0{ private: double real; double img; public: complex0(); complex0(double,double); complex0 operator+(complex0 cp); complex0 operator-(complex0 cp); complex0 operator~(){complex0 tmp;tmp.real=real;tmp.img=-img;return tmp;}; complex0 operator*(complex0 cp); complex0 operator*(double x); ~complex0(){}; friend ostream& operator<<(ostream& os,const complex0 cplx); friend istream& operator>>(istream& is,complex0& cpi); friend complex0 operator*(double x,complex0 cp); }; complex0::complex0() { real=0; img=0; } complex0::complex0(double r,double i):real(r),img(i) { } istream& operator>>(istream& is,complex0& cpi) { cout<<"real:"; is>>cpi.real; cout<<"img:"; is>>cpi.img; return is; } ostream& operator<<(ostream& os,const complex0 cplx) { os<<"("<<cplx.real<<","<<cplx.img<<"i)"; return os; } complex0 complex0::operator+(complex0 cp) { complex0 tmp; tmp.real=real+cp.real; tmp.img=img+cp.img; return tmp; } complex0 operator*(double x,complex0 cp) { return cp*x; } complex0 complex0::operator-(complex0 cp) { complex0 tmp; tmp.real=real-cp.real; tmp.img=img-cp.img; return tmp; } complex0 complex0::operator*(complex0 cp) { complex0 tmp; tmp.real=real*cp.real-img*cp.img; tmp.img=real*cp.img+img*cp.real; return tmp; } complex0 complex0::operator*(double x) { complex0 tmp; tmp.real=real*x; tmp.img=img*x; return tmp; } int main() { complex0 a(3.0, 4.0); // initialize to (3,4i) complex0 c; cout << "Enter a complex number (q to quit):\n"; while (cin >> c) { cout << "c is " << c << '\n'; cout << "complex conjugate is " << ~c << '\n'; cout << "a is " << a << '\n'; cout << "a + c is " << a + c << '\n'; cout << "a - c is " << a - c << '\n'; cout << "a * c is " << a * c << '\n'; cout << "2 * c is " << 2 * c << '\n'; cout << "Enter a complex number (q to quit):\n"; } cout << "Done!\n"; return 0; }
[此贴子已经被作者于2016-3-30 10:42编辑过]