C++ 类
来源:互联网 发布:护卫神php 编辑:程序博客网 时间:2024/05/17 07:25
1、类
1.1构造函数
减少相关函数的数目的一种方式是采用默认参数。
Data(int dd = 0, int mm = 0, int yy = 0);
1.2静态成员
如果一个对象是类的一部分,但却不是该类的各个对象的一部分,它被称为static静态成员。
一个需要访问类成员,然而却并不需要针对特定对象去调用的函数,被称为一个static成员函数。
1.3类对象的复制
复制构造函数X::X(const X&)
复制赋值X& operator=(const X&)
在复制赋值里需要检查自我赋值。
1.4常量成员函数
将那些不修改对象值的成员函数做成const成员函数。
如果在一个类的外面定义它的const成员函数,需要给出const后缀。
对于const或者非const对象都可以调用const成员函数,而非const成员函数则只能对非const对象调用。
1.5自引用
可以让一组相关的更新函数返回一个到被更新的引用,以使对于对象的操作可以串接起来。
return *this;
2、高效的用户定义类型
2.1一组经典的操作
[1]一个构造函数描述这个类型的对象/变量应该如何初始化
[2]一组函数使用户可以查看X,这些函数标记为const
[3]一组函数使用户可以操作X。
[4]一组隐式定义的函数,是X可以自由地复制。
[5]一个类,Bad_X,用于通过异常报告出错误情况。
3、对象
3.1类对象作为成员
成员的构造函数将在容器类本身的构造函数体执行之前首先被执行。这些构造函数按照成员在类中声明的顺序执行。
如果某个成员的构造函数不需要参数,在初始化表里就无须提到这个成员。
对于那些const成员和引用成员而言,对成员的初始化是必不可少的。
3.2成员常量
对于静态整型成员,可以给它的声明加上一个常量表达式作为初始化。
static const int cl = 7;
当用到某个被初始化的成员,而且需要将它作为对象存入存储器时,这个成员就必须在某处有(惟一的)定义。
const int X::cl;
const int *p = & X::cl;
3.3数组
数组和对象的释放
X *t1 = new X;
X *t2 = new X[2];
delete t1;
delete[] t2;
也可以使用vector
vector<X> *pl = new vector<X>(10);
delete p1;
3.4局部静态变量
在第一次调用的时候初始化。如果第一次调用没有初始化,第二次调用也不会进行初始化。
3.5非局部存储
用第一次开关去缓和顺序依赖性问题。
使用这种技术依赖于一个事实:无构造函数的静态分配对象将自动地初始化为0;
class Zlib{
static bool initialized;
static void initialize(){/* 初始化 */ initialized = true;}
public
//无构造函数
void f()
{
if (initialized == false) initialize();
//...
}
//...
};
3.6联合
联合可以有成员函数,但不能有静态成员。
编译器无法知道被使用的是联合的哪个成员,也就是说无法知道在联合中的对象的类型。因此联合不能包含构造函数或析构函数的成员。
- 【c/c++】复数类
- 【c/c++】类模板
- [C/C++] 类
- 【C/C++】嵌套类
- 【C/C++】模板类
- C++------类
- C#--类
- C++-->类
- 【C++】类
- 【C#】类
- c++,C#,java中的类
- c与c++?励志类
- 【C/C++】String类实现
- 【C/C++】类和结构
- 含有指针成员的类的拷贝[C/C++/C#]
- 不能被继承的类[C/C++/C#]
- Objective-C类-Objective-C self 关键字
- [C/C++] 第12章 类 primer
- 冒泡排序
- java防止浏览器直接打开下载的文件
- linux进程间通信的几种机制的比较及适用场合
- outlook中unopened item提示图标
- 机房收费系统---工程过程的图
- C++ 类
- NAND Flash的驱动程序设计
- PHP 日期时间基本操作
- 10 000小时的标准----是否有先天的才能
- .NET中公共变量与属性的区别(get/set)[转]
- 码间干扰
- dom4j 解析xml文件
- Java 下载文件不在浏览器中直接打开
- PHP替换字符串中指定字符串 替换指定的次数