C++

今天看了2节侯捷老师得视频&&看完了c++ primer得第二章

总结如下

#ifndef _COMPLEX_

#define _COMPLEX
class comple{
	 public:
	    comple (double r=0,double x=0) : re(r),ch(x) {}
	    double getre() {
	    	return re;
		}
		double getch (){
			return ch;
		}
		comple& operator += (const comple& x){
				return _doapl(this,x);
		}
	 private :
	 	double re,ch;
	 	friend comple& _doapl(comple*ths,const comple& tmp){
	 		ths->re+=tmp.re;
	 		ths->ch+=tmp.ch;
	 		return *ths;
		 }
};
/*
comple&
comple:: operator +=(const comple &x){
	//this->re+=x.re;
	//this->ch+=x.ch;
	//return *this;
	return _doapl(this,x);
}
*/
inline ostream& 
operator << (ostream &a,comple& x){
	  return a<< '(' << x.getre() << x.getch()<<')'; 
}

comple 
operator + ( comple&a, comple&b){
	// return comple()
	return comple(a.getre()+b.getre(),b.getch()+a.getch());
	/// 临时对象 
}
#endif



int main() {
	comple a,b(1,1);
    comple c=a+b;
  //  cout<<c.getre();
    cout<<a<<' '<<b<<' '<<c<<endl;
    return 0;
}
代码是侯捷老师讲得。真的是太经典了。

 

 

 

 

 

 

谁调用这个函数谁就是隐藏函数,this

 

 

 

 创建临时对象 return by value

 

 

c++ primer 总结如下

 

 

 constexper 能把指针变成一个顶层const  constexper int *p  = &r 表示得是 指向r得常量指针

 

 

 

 

 

typedef 我觉得需要注意得就是

typedef double * p;

const p a = null;

这里得a不能理解成  const doulbe * a;

应该是 一个常量指针 const 修饰得是  double * 这个整体

 

 

 

 

 

 

 

 

 

posted @ 2020-02-07 22:13  Xzavieru  阅读(45)  评论(0编辑  收藏  举报