• C plus plus day1


    Header(头文件)中的防御式声明  不会有重复的include含入内容

    complex.h

    1 #ifndef __COMPLEX__
    2 #define __COMPLEX__
    3 ....
    4 #endif

     构造函数名称一定要与类的名称相同

    class complex
    {
    public:     默认实参
        complex(double r=0,double i=0)
        : re(r), im(i)   初值列 一种经典的初始化方法  和在大括号中使用 re=r; im = i; 等等价
        {} 
       double real() const {return re;} 内联函数
       下面这行 成员函数
       complex& operator += (const complex&); 返回值传递通过引用方式
    private: double re,im;
       friend complex& __doap1 (complex*, const complex&) 友元 };

      inline complex&
      __doap1(complex* ths, const complex& r)
      {
      ths->re += r.re;
      ths->im += r.im;
      return *ths;

      }

     

     构造函数可以有很多同名的但接收参数的类型、个数不同 编译器会判断不同的类型来使用 重载

    函数重载常常发生构造函数上

    inline关键字 为了解决一些小函数大量占用内存的问题,仅是对编译器的一个建议

    const表示的变量不改变数据内容

    参数传递 by value and by reference   尽量不要传value 传指针  都要压倒栈中 指针只个字节 传value太大了用

    返回值传递 也尽量 by reference

    friend 友元   可以取得类的private成员

    同一个class下的各个对象互为友元

    数据一定在private里面

    操作符重载 成员函数 需要使用this

                       非成员函数 不需要使用this

    下面这些函数不能通过指针传递 因为他们在函数里创建的 离开这个函数就死亡了 
    inline complex 比如复数的加法 对付用户的不同可能
    operator + (const complex& x,const complex& y) { typename() 创建临时对象 return complex(real(x)+real(y), imag(x)+imag(y)); } inline complex operator + (const complex& x,double y) { return complex(real(x)+y, imag(x)); } inline complex
    对+号重载
    operator + (double x,const complex& y) { return complex(x+real(y), imag(y)); }
    complex(1,2)临时对象

    特殊操作符只能采用全局的写法

    输出
    ostream& 不能改成 void 方便使用者连续输出 operator << (ostream& os,const complex& x) { return os << '(' <<real(x)<< ',' << imag(x) << ')'; }
    count << conj(1,2)<<endl;
  • 相关阅读:
    dsu on tree
    bzoj3527 [Zjoi2014]力
    bzoj3527 [Zjoi2014]力
    114.遍历文件夹并批量修改文件名
    25.八皇后问题
    24.C语言最全排序方法小结(不断更新)
    112.备忘录设计模式
    110.文件搜索,系统大小获取,以及病毒行为
    109.vprintf vfprintf vscanf vfscanf
    108.sqllite3(C语言数据库库)详解
  • 原文地址:https://www.cnblogs.com/suizhixxie/p/10458300.html
Copyright © 2020-2023  润新知