首页 > 编程语言 > 详细

C++拾遗(十)类与动态内存分配(2)

时间:2016-05-06 20:13:25      阅读:196      评论:0      收藏:0      [点我收藏+]

静态成员函数

声明时包含关键字static。注意以下两点:

1、使用静态成员函数时不能通过对象或者this指针来调用,只能使用类名+作用域解析符来调用。

2、静态成员函数只能使用静态成员。

 

new操作符

在使用

#include <new>

之后,new操作符可以在分配内存时指定内存位置。例如:

 1 //创建一个512字节的内存缓冲区
 2 char *buffer = new char[512];
 3 ClassName *ptr1, *ptr2;
 4 
 5 //在buffer缓冲区中创建一个类对象
 6 ptr1 = new (buffer) ClassName;
 7 //在堆中创建一个类对象
 8 ptr2 = new ClassName;
 9 
10 delete ptr1;
11 delete [] buffer;

delete ptr1调用了类的析构函数,而delete [] buffer只删除了buffer缓冲区,没有调用类的析构函数。这时候一个可行的方案是在释放buffer前显示调用析构函数。

 

嵌套

C++允许在类中包含结构、类和枚举定义。

这些类型的作用域是整个类。

这种声明不会创建数据对象,只是指定了在类的作用域中可以使用这种类型。

 

成员初始化句法

1、只能用于构造函数。

2、非静态的const成员必须这样初始化。

3、引用数据成员必须这样初始化。

格式如下:

ClassName::ClassName(int n):mem1(n), mem2(0), mem3(null)
{
  //construct....      
}

冒号后面mem1,mem2,mem3都是ClassName的数据成员,初始化的顺序与它们在类声明中的顺序一致。

C++拾遗(十)类与动态内存分配(2)

原文:http://www.cnblogs.com/DeathKnightH/p/5466248.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!