共 31 篇文章 |
|
函数调用:myFunction(obj); //函数以外对象obj的值不会 改变。2. reference传递:如果函数定义为:void myFunction( MyObjectType &obj);函数调用:myFunction(obj); //函数以外对象obj的值会 改变。3. 指针传递:如果函数定义为:void myFunction( MyObjectType *obj);函数调用:myFunction(&obj); //需要dereference(&), 函数以外对象o... 阅46 转1 评0 公众公开 15-10-25 13:51 |
// 修改后的头文件 2 "Sample.h"#include<iostream>using namespace std;// 以下3行代码为新加入class Sample;ostream &operator<<(ostream &out, const Sample s);istream &operator>>(istream &in, Sample &s);class Sample {public:Sample();friend ostream &operator<<(ostream... 阅40 转1 评0 公众公开 15-10-25 13:49 |
第六章 C++ 标准函数库 C++ Standard Library第六章 C++ 标准函数库。例如,如果我们想要以二进制方式打开文件"example.bin" 来写入一些数据,我们可以通过以下方式调用成员函数open()来实现:ofstream file;file.open ("example.bin", ios::out | ios::app | ios::binary);这样,我们就可以通过以下方式进行与上面同样... 阅57 转1 评0 公众公开 15-10-21 16:40 |
它的作用是定义一个叫做name 的宏定义,然后每当在程序中遇到这个名字的时候,它就会被value代替,例如:#define MAX_WIDTH 100char str1[MAX_WIDTH];char str2[MAX_WIDTH];#undef 完成与 #define相反的工作,它取消对传入的参数的宏定义:#define MAX_WIDTH 100char str1[MAX_WIDTH];#undef MAX_WIDTH#define MAX_WIDTH 200char str2[MAX_WIDT... 阅52 转1 评0 公众公开 15-10-21 16:38 |
5.4 类型转换高级 (Advacned Class Type-casting)5.4 类型转换高级 (Advacned Class Type-casting)为了控制这种类之间的转换,ANSI-C++ 标准定义了4种新的类型转换操作符: reinterpret_cast, static_cast, dynamic_cast 和 const_cast。所有这些操作符都是同样的使用格式:reinterpret_cast <new_type> (expression)dynamic_cast <ne... 阅84 转1 评0 公众公开 15-10-21 16:36 |
5.3 出错处理 (Exception handling)5.3 出错处理 (Exception handling)如果有例外发生,也就是说在try 语句块中有一个throw 指令被执行了,则catch 语句块会被执行,用来接收throw传来的例外参数。在这种情况下被执行catch 语句块是相应的符合被throw扔出的参数类型的那一个:// exceptions: multiple catch blocks #include <iostream.h>... 阅27 转1 评0 公众公开 15-10-21 16:35 |
5.2 名空间 (Namespaces)5.2 名空间 (Namespaces)namespace general{// namespaces #include <iostream.h> namespace first { int var = 5;// using namespace example #include <iostream.h> namespace first { int var = 5;这里要注意,语句using namespace 只在其被声明的语句块内有效(一个语句块指在一对花括号{}内的一组指令... 阅27 转1 评0 公众公开 15-10-21 16:33 |
除了模板参数前面跟关键字class 或 typename 表示一个通用类型外,函数模板和类模板还可以包含其它不是代表一个类型的参数,例如代表一个常数,这些通常是基本数据类型的。回到函数库的例子,如果我们想要建立一个函数模板的库,我们不能再使用头文件(.h) ,取而代之,我们应该生成一个模板文件(template file),将函数模板的接口和实现 都放在... 阅13 转1 评0 公众公开 15-10-21 16:32 |
阅12 转1 评0 公众公开 15-09-26 17:15 |
使用*ppoly1 和 *ppoly2 取代rect 和trgl 的唯一限制是*ppoly1 和 *ppoly2 是CPolygon* 类型的,因此我们只能够引用CRectangle 和 CTriangle 从基类CPolygon中继承的成员。这是因为没有了关键字virtual ,程序执行不再根据实际对象的不用而调用相应area() 函数(即分别为CRectangle::area(), CTriangle::area() 和 CPolygon::area()),取而代之... 阅64 转2 评0 公众公开 15-09-26 17:14 |