C++基本知识3

1.new, delete(关键字)

new int; //开辟一个存放整数的存储空间,返回一个指向该存储空间的地址(即指针) 
new int(100); //开辟一个存放整数的空间,并指定该整数的初值为100,返回一个指向该存储空间的地址 
new char[10]; //开辟一个存放字符数组(包括10个元素)的空间,返回首元素的地址 
new int[5][4]; //开辟一个存放二维整型数组(大小为5*4)的空间,返回首元素的地址 
float *p=new float (3.14159); //开辟一个存放单精度数的空间,并指定该实数的初值为//3.14159,将返回的该空间的地址赋给指针变量p

堆上申请的空间 默认初值为0,栈上的为垃圾值

2.对象指针用malloc不会调用构造函数,用new分配时会调用构造函数,但不会调用析构函数,因为在栈上,需要手动调用delete来释放空间

  1. 静态成员变量:把一个类的成员说明为 static 时,这个类无论有多少个对象被创建,这些对象共享这个 static 成员 
    静态成员局部于类,它不是对象成员,在类的外部进行初始化

int Test::m_c = 10; 必须在外部进行初始化

调用方式:Test::count 或 s.count

3.静态成员函数:静态成员函数数冠以关键字static 
静态成员函数提供不依赖于类数据结构的共同操作,它没有this指针 
在类外调用静态成员函数用 “类名 :: ”作限定词,或通过对象调用 
疑难问题:静态成员函数中,不能使用普通变量,只能使用静态成员变量

static只在声明函数时写

只可访问静态成员变量,不能访问普通变量

4.类的大小为成员变量所占空间(栈或堆)

成员变量: 
普通成员变量:存储于对象中,与struct变量有相同的内存布局和字节对齐方式 
静态成员变量:存储于全局数据区中 
成员函数:存储于代码段中。

所以对象共享成员函数

成员变量: 
普通成员变量:存储于对象中,与struct变量有相同的内存布局和字节对齐方式 
静态成员变量:存储于全局数据区中 
成员函数:存储于代码段中。

不同对象虽然访问同一个函数,但是根据this指针的不同,其传入的地址参数也不同,所以同一个函数会调用不同的成员变量

5.const修饰的函数不能修改变量, void print() const

const void print() 与void const print()相同,返回值readonly

函数定义时,末尾也要加const

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值