- 博客(9)
- 资源 (1)
- 收藏
- 关注
原创 C++中的友元机制
■□□1.友元机制允许一个类将其非公有成员的访问权授予指定的函数或类。2.友元的声明可出现在类中的任何地方,友元不是类的成员,所以它不受其声明部分的访问控制的影响。3.通常将友元的声明成组的放在类的开始或结尾处是一个好主意。4.友元可以是普通的非成员函数,可以是其它类的成员函数,也可以是整个类。当我们将成员函数声明为友元时,函数名必须用该函数所属的类名限定。5.一般的讲,必须先定义包含成员函数的类
2009-05-10 23:22:00
1023
原创 C++异常处理知多少(二)
1.标准异常类定义在四个头文件中:exception,new,type_info,stdexcept。2.exception中定义了exception类,new中定义了bad_alloc类,type_info中定义了bad_cast类,stdexcept中定义了runtime_error、logic_error类。3.runtime_error类(表示运行时才能检测到的异常)包含了over
2009-05-05 00:25:00
1117
原创 C++异常处理知多少(一)
1.异常发生时,异常对象会沿函数调用栈的反方向抛出,这个过程常称为栈展开。 2.在栈展开过程中,如果异常对象始终都没遇到可行的catch处理块,系统将调用terminate函数强制终止程序。当然如果连try块都没有,系统将直接调用terminate函数。 3.在栈展开过程中,编译器保证适当的撤销局部对象。每个函数在栈展开退出时,它的局部存储会释放,如果局部对象是类类型,则自动调用对
2009-05-04 14:44:00
1474
原创 变长参数的函数定义
变长参数函数定义由C标准库stdarg.h支持。我们以求和函数为例:#include #include using std::cout;using std::endl;templateT sum(int counts, T data1, ...) { T sum=0; va_list ap; va_start(ap, counts);
2009-05-02 13:47:00
901
原创 构造函数的点点滴滴
■□□ 1.构造函数有特定的名字并且不能指定返回值;2.构造函数用于初始化对象的非静态数据成员,构造函数不能声明为const,因为无论是const对象还是非const对象都有同样的构造过程;3.只要试图创建一个对象,都会自动调用一个构造函数;4.构造函数的初始化列表只在构造函数的定义中指定而不是声明中指定,从概念上讲,可认为构造函数分两个阶段执行,初始化阶段和普通计算阶段,前者由初始化列表指定,后
2009-05-01 02:23:00
1027
原创 趣味魔方阵
所谓魔方阵是指这样的方阵,它的每一行,每一列和每条对角线之和均相等。n阶魔方阵由1~n*n,n*n个自然数组成,且阶数n只能为奇数。要生成这样的方阵,看似非常玄乎,但其实它只有简单的三条规则,如下:①自然数1总是在方阵的第一行中间一列;②从自然数2到自然数n*n依次按下列规则摆放:每一个数摆放的行数比前一个数的行数少1,列数多1(注意循环);③如果按上面规则确定的位置已经被占用,则摆放在此位置的下
2009-04-28 12:51:00
1138
2
原创 二维动态数组类模板
C++提供了许多强大的机制来实现代码的高度复用、来使我们使用我们自已的类就像使用内置类型那样方便快捷。比如模板,运算符重载等等。模板好比如是一个大批量生产函数和类的工厂,使我们不用再去关心与数据类型相关的繁琐编程细节,把我们精力留给那些真正值得我们去认真思考的地方。而运算符重载则使我们的程序更直观更简洁,这不仅使我们更容易读懂我们的程序,而且使我们能以一种更为流畅的方式来表达我们的想法。就像上篇文
2009-04-27 09:09:00
1323
原创 C++二维数组的动态分配
C++中动态分配一维数组是十分常见的事,但会分配一维数组的人并不一定会分配二维数组。因为我想,不到特殊情况,我们可能很少想过要使用动态分配的二维数组。但不管怎么样,只要你是第一次想试着去分配一个二维数组的时候,你或多或少的会想当然地认为二维数组一定是像这样分配的:int m=2, n=3; int** array2D=new int[m][n];。这不是我们的错,因为写多了int n=3; int
2009-04-26 00:25:00
1533
2
原创 浅说C++的指针
简单说来,指针最郁闷的是,给你一个指针你不知道它实际指的是什么。例如一个指针int* p;,它是像int ival=23; int* p=&ival这样指向单个变量,还是像int a[3]={1,2,3}; int* p=a;这样指向一个数组?或许它还根本什么东西也没有指,是个空指针。就算它指向一个数组,但你知道它指向的数组长度吗?不知道吧,所以我们会经常乱指,指来指去冷不防就指出界了。当然,
2009-04-24 09:55:00
741
MPI示例源代码(C)
2009-04-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人