美文网首页
C++要点回顾(谭爷爷的书)

C++要点回顾(谭爷爷的书)

作者: ifeelok | 来源:发表于2017-05-05 19:49 被阅读0次

变量的引用

  • 在C++中,变量的引用就是变量的别名alias
  • 对一个变量的引用的所有操作,实际上都是对其所代表的原来的变量的操作
    变量a,别名为b
    int a;
    int &b=a;
    声明b是一个引用变量,初始化为a
    经过这样的声明之后,使用a或b的作用相同
    type * var 声明了一个指针变量
    type & 声明了一个引用变量
  • 声明一个变量的引用后,在本函数执行期间,该引用不可以变更为其他变量的引用
  • &何时为引用,何时为取地址
    &前面有type时为引用,elsewise为取地址
  • 将引用作为函数参数
void swap(int&a, int&b)
{
  int temp=a;
  a=b;
  b=temp;
}
  • 形参不是另外一个变量,而是实参的引用,与实参同占一个存储单元,也就是说改形参就可以改实参

inline function:compile时,将内联函数嵌入到main里,以空间换时间,适用于规模小且频繁调用的函数

作用域运算符:有个全局变量a,有个局部变量a,在局部,用a会屏蔽全局a,如果真想用a,通过::a

动态分配/回收内存的运算符new和delete
new int //allocate a space, return a ptr
new int(100) //eval the initial val
new int[10] //allocate a space to store array, in this case, you cannot specify initial val

float* p=new float(3.14);
float* parr=new float[10];
delete p;
delete[] ptr;

无参数的构造函数
Box b 而不是b()

类对象数组 Box b[3]={Box(参数), Box(参数), Box(参数)}

指向普通函数的指针:
void (p)( )
可以使它指向一个函数
p=&fun
可以通过该指针变量,调用该函数
(
p)( )

指向成员函数的指针
void (Time::*p)()

普通函数: 类型名 (指针变量名)(参数列表)
成员函数: 类型名 (类名::
指针变量名)(参数列表)

数据既能共享,又不会被修改,使用const
如果一个对象为const,那么它不可以call非const的成员

类名 *const 指针变量名 = 对象地址
这是个常指针,只能指向一开始确定的那个对象

const 类名*指针变量名
这个是指向常变量的指针,可以换别的常对象

静态定义对象,在runtime,对象所占的空间是不能随时释放的
想要提高内存的利用率,可以动态建立和释放对象
用new运算符动态地分配内存后,将返回一个指向新对象的指针
Box* p=new Box(12,13,14);
程序可以通过这个p访问对象
在执行new运算时,如果内存量不足,返回一个0
delete p;
memberwise copy

静态数据成员,为所有类对象所共享,只能在类外面进行初始化
类名::静态变量

友元函数:可以是普通函数,也可以是其他类的成员函数
友元函数可以访问私有变成员
用关键字friend声明友元函数
如果是其他类的成员函数作为友元函数,要提前声明其他类

运算符重载:
格式——类型 operator 运算符名(参数表)
{重新定义运算规则}
注意 operator 运算符名 就是函数名,其他的和普通函数没什么区别

对>>和<<进行重载,只能作为普通函数不可以作为成员函数
istream & operator >>(istream &, 自定义类 &)
ostream & operator >>(ostream &, 自定义类 &)

#include <iostream>
using namespace std;

class Complex{
private:
    float re;
    float im;
public:
    Complex():re(0),im(0){};
    Complex(float r,float i):re(r),im(i){};
    //Complex operator +(Complex& a);
    //void show();
    friend ostream & operator<<(ostream & nout,Complex &c);
    friend Complex operator + (Complex &a,Complex &b);
    friend istream & operator>>(istream & nin,Complex &c);
};

/*Complex Complex::operator +(Complex& a){
    float real,imag;
    real=a.re+re;
    imag=a.im+im;
    return Complex(real,imag);
}*/
istream & operator>>(istream & nin,Complex &c){
    cout<<"Enter real and imaginary part:"<<endl;
    nin>>c.re>>c.im;
    return nin;
}
ostream & operator<<(ostream & nout,Complex &c){
        if(c.im==0){
        nout<<c.re<<endl;
    }else if(c.im<0){
        nout<<c.re<<c.im<<"i"<<endl;
    }else{
        nout<<c.re<<"+"<<c.im<<"i"<<endl;
    }
    return nout;
}


Complex operator+(Complex &c1,Complex &c2){
    return Complex(c1.re+c2.re,c1.im+c2.im);
}
int main(){
    Complex u;
    Complex v;
    cin>>u>>v;
    Complex w;
    w=u+v;
    cout<<w;
    return 0;
}

相关文章

  • C++要点回顾(谭爷爷的书)

    变量的引用 在C++中,变量的引用就是变量的别名alias 对一个变量的引用的所有操作,实际上都是对其所代表的原来...

  • 对于喜爱的东西,就有点贪

    下午我去给空心菜浇水的时候,看见谭爷爷在栽辣椒苗。 跟谭爷爷聊了几句。谭爷爷说他的辣椒苗有多的,问我要不要,是长线...

  • 齐帆齐微课(33)马谭谭挨打记

    马谭谭的爷爷来接孙子时,被语文老师叫到办公室了,语文老师今天的脸色不好,马爷爷心里七上八下的,他不知道谭谭又犯了什...

  • C++复习

    C++谭版期末复习 前言 好好复习,简单看看语法 从C到C++ C++的输入输出 cin cout cerr cl...

  • 「带有how的拆页」技能学习及练习 | TF1-2

    技能回顾 【环节】选书与选拆页 【技能点】选书 【级别】TF1-1 【页码】5 【技能要点】 1)要选对书、选对拆...

  • 要点回顾

    今天的要点回顾正是本周要点,所考内容就是本周上课所讲,学生整体做起来很兴奋,都考得很好,也测出了不听课的学生,以及...

  • C++要点,11个简单的代码清单,告诉你什么叫完美转发!

    下面的这些要点是对所有的C++程序员都适用的。我之所以说它们是最重要的,是因为这些要点中提到的是你通常在C++书中...

  • C++ 回顾

    C++对C的加强 0.面向过程–>函数+面向对象–>类和对象 1.namespace命名空间 2.实用性 增加 -...

  • C++ 回顾

    typedef 使用 typedef 为一个已有的类型取一个新的名字。下面是使用 typedef 定义一个新类型的...

  • 如何做结构化笔记

    首发于公众H:锡谭自陈 听:老师/作者说了什么? 拆:知识的要点(关键词)有哪些? 连:每个要点之间是否存在关联,...

网友评论

      本文标题:C++要点回顾(谭爷爷的书)

      本文链接:https://www.haomeiwen.com/subject/rumjtxtx.html