C++,关于对象的笔记

类里面的this指针,不能显示的写为实参和形参,但是可以在类里显示的使用

this指针是存储在哪里的

不是存储在对象里的,而是作为形参出现的,是存储在栈帧上的

空指针是编译错误还是运行错误

运行错误

构造函数是干什么用的

并不是开空间创建对象,而是初始化对象变量的

构造函数的特征

  1. 函数名和类名相同
  2. 无返回值(不需要写void)
  3. 对象实例化时编译器自动调用对应的构造函数
  4. 构造函数可以重载

构造函数有参数,要怎么写

类名 变量名(参数)

C++把类型分为内置类型和自定义类型

内置类型就是int/double/char,指针 等

自定义类型就是class和struct等

默认生成的构造函数的规则

内置类型成员不会去做处理,自定义类型会去调用他的默认构造函数(C++11给了个补丁,支持声明时给缺省值)

关于要不要写构造函数的总结

  1. 一般情况下,要自己写构造函数
  2. 成员都是自定义类型,或声明时给了缺省值,可以让编译器自己生成构造函数
  3. 如果自定义类型里没有构造函数,那么成员的值会被初始化成随机值

默认构造函数的范畴

  1. 自己不写构造函数,叫做默认构造
  2. 无参构造函数也可以叫默认构造
  3. 全缺省也可以叫默认构造

可以不传参数就调用构造,都可以叫默认构造

什么是析构函数

和销毁对象有关系,是自动调用的,构造函数是创建,析构函数是销毁

析构函数怎么创建

构造函数前面加上~符号,并且析构函数没有参数

类关键字是什么

class,后面跟的是对象名

什么是成员

类里面定义的存储数据的变量,就是类的成员,如果是函数,就是成员函数

对象变量要怎么使用对应的成员函数

对象变量.成员函数

类里面的私有成员要怎么访问

只能通过成员函数进行访问

构造函数的成员名和参数名

构造函数的参数名不能和对象的成员名起一样的名字,因为构造函数的参数表示的不是类成员,而是赋值给类成员的值

对象之间可以赋值

源对象中的每个成员的值会赋值给目的对象的每个成员

如果定义的对象变量是一个常属性(const)的变量,则需要把方法函数也定义为常属性,以确保对象中成员的值不会被修改

方法声明

Void show() const;

方法定义

Void stock::show() const;

this指针

每个成员函数(包括构造函数和析构函数),都有一个this指针,指向调用对象,this存储的是地址,对应的对象可以表示为*this

你可能感兴趣的:(C++,c++,笔记)