码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2016-05-06 20:15:31      阅读:129      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!