`
v5qqbrowser
  • 浏览: 354794 次
文章分类
社区版块
存档分类
最新评论

C++ 学习笔记1

 
阅读更多
C++中结构体 和 类可以通用,结构体中也可以定义函数.区别:在于访问控制。
结构体中 缺省成员 都是public
类中 缺省:私有的

构造函数:
	1。构造函数最重要的作用是创建对象本身;
	2. C++规定,每个类必须有一个构造函数,没有构造函数,就不能创建任何对象
	3. 如果没有提供构造函数,则C++提供一个默认的不带参数的构造函数(由C++编译器提供),完成对象创建
	4. 如果定义了一个构造函数,则编译器不再提供默认的不带参的构造函数

析构函数:构造函数的 取反
	  对象生命周期结束的时候,会调用析构函数进行内存的回收和对象的释放

	  构造函数和析构函数 是由系统自动调用的

	  析构函数 不允许 有返回值,不能带参数,一个类中只能有一个析构函数
	
重载函数: 参数的类型,个数不同,返回值一样
	
	1.void output();
	  int output();
	不能构成重载,系统不知道调用哪一个
	2.void output(int a, int b=4);
	  void output(int a);
	有缺省值,也不行。

this指针:
	1.this指针 是一个隐含的指针,它是指向对象本身,代表了对象的地址
	2.一个类所有的对象 调用的成员函数都是同一代码段。
	3.成员函数除了接受参数外,还接受到了一个对象的地址。pt.output(1,2)
	这个地址被一个隐含的形参this指针所获取,他等同于执行this=&pt.
	所有对数据成员的访问都 隐含的加上了前缀this->.x=0--->this->x=0.

根据传递对象的地址,来决定调用哪个对象的方法
多态性:虚函数,依据传递对象的类型,迟邦定,运行的时候根据对象的类型
	在基类的方法前加 virtual,子类有调用子类的,没有去调用父类的

纯虚函数:一个类中如果含有,virtual void breathe()=0;则这个类为抽象类,不能直接实例化
	 子类如果没有去实现这个函数,则也为抽象类,不能实例化

引用:变量的别名,必须在定义的时候就进行初始化.引用不需要分配内存空间
      int a = 6;
      int &b = a;
      b = 5;//a=5
      int c = 10;
      b = c;//a=10

      传参的时候用的比较多,避免内存的拷贝

      int change(int &a, int &b);
      change(x,y);

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics