C/C++
RayChase
博客搬家了: https://www.raychase.net/
展开
-
多态(Polymorphism)和对象切割(Object Slicing)的小例子
如下:#include iostream>using namespace std;class Grandfather...{public: virtual void display()=0; void run()...{ cout"Grandfather Run!!! "; }};class Father:public原创 2008-03-27 16:27:00 · 1502 阅读 · 0 评论 -
智能指针:auto_ptr和shared_ptr
auto_ptr是个pointer-like对象,也就是所谓的“智能指针”,其析构函数会自动调用。std::auto_ptrInvestment> ptr1(new Investment());//之后,如果:std::auto_ptrInvestment> ptr2(ptr1);//或者:ptr2=ptr1;//那么ptr2指向那个对象,ptr1置空。shared_ptr类似,但原创 2008-03-27 16:33:00 · 933 阅读 · 0 评论 -
回溯法解迷宫问题的两个解法
解法1: /**//* 使用回溯法计算迷宫问题 */#include stdio.h>#include stdlib.h>struct pos...{ int row; int col;};void main()...{ int maze[5][5]=...{ 0,1,0,1,0, 0,0,0,1,0, 0,1,0,1,0,原创 2008-03-27 20:46:00 · 2546 阅读 · 4 评论 -
const对象一样可能被更改
如下:#include string>#include iostream>using namespace std;void main()...{ string s("Hello"); char* p=&s[0]; *p=J; couts.c_str()endl; //可见,这种情况说明了,即使用const也未必能保证对象的不可更改! //这种情况导出原创 2008-03-27 20:34:00 · 1048 阅读 · 0 评论 -
返回引用类型的函数
如下:/**//*关于引用类型返回值之函数的使用*/#includeiostream>using namespace std;int g=0;int& func()...{ return g;}void main()...{ int t=func(); couttendl; func()++; coutgendl; func()=30; coutg原创 2008-03-27 20:38:00 · 1335 阅读 · 0 评论 -
总结的几种类型数据转换的实现
如下:#includestdio.h>#includestdlib.h>#include iostream>using namespace std;void main()...{//int和char*互转: //int型转char*型,保持int数值显示等于结果字符串,如13转成"13" int _int=123; char _char[10]; itoa(_int原创 2008-03-27 16:32:00 · 1081 阅读 · 0 评论 -
数组应用几则
类数组:class A...{public: A():a(0)...{ couta; } A(int t):a(t)...{ couta; } int a;};void main()...{ int p=3; A arr[2]=...{A(),A()}; A brr[2]=...{A(1),A(2)}; in原创 2008-03-27 20:36:00 · 904 阅读 · 0 评论