C++
文章平均质量分 76
大酋长
做个合格的游戏开发人员
展开
-
C++中禁止类被派生的方法
在我的那篇“C++中虚析构函数的作用”中我说明了为什么作为基类的类的析构函数必须是虚函数,同时也指出:为了避免产生虚函数表,如果类不是基类的话,析构函数就不需要声明为虚函数。 但是,我们不能预料用户的行为,你不敢肯定用户是否会从你的类去派生自己的类。如果用户以一个基类指针去删除一个派生类的对象,就会发生派生类的析构函数不被调用的情况。这样做的危险性我想大家都知道。当然,你可以在类的说明文转载 2011-12-01 13:45:03 · 2213 阅读 · 0 评论 -
纠结的混合声明
声明都知道是什么,啥是混合声明呢?这是我发明的词,其实我更倾向叫嵌套声明或者混乱声明。看了下面的声明就知道为啥叫混乱了:1、float(**a)[5];2、double*(*a)[5];3、double(*a[5])();4、int*((*a)[5]);5、long(*a)(int);6、int(*(*a)(int))(int,int);原创 2011-11-11 15:00:23 · 744 阅读 · 0 评论 -
写宏注意
今天蛋疼忽然发现看了本c++primer没看到有关于宏的说明(也可能是我没注意看)然后无聊写了个简单的试下#define product(x) x*x#define product2(y) y+yint _tmain(int argc, _TCHAR* argv[]){ char c_wait; int a = 3; int i = 3; i原创 2011-11-11 13:00:27 · 764 阅读 · 0 评论 -
Boost智能指针—scoped_ptr
boost::scoped_ptr和std::auto_ptr非常类似,是一个简单的智能指针,它能够保证在离开作用域后对象被自动释放。下列代码演示了该指针的基本应用:#include #include #include class implementation{public: ~implementation() { std::cout <<"destroyin转载 2011-12-01 17:53:54 · 2503 阅读 · 0 评论 -
Boost智能指针—shared_ptr
boost::scoped_ptr虽然简单易用,但它不能共享所有权的特性却大大限制了其使用范围,而boost::shared_ptr可以解决这一局限。顾名思义,boost::shared_ptr是可以共享所有权的智能指针,首先让我们通过一个例子看看它的基本用法: #include #include #include class implementation{publ转载 2011-12-01 17:57:10 · 1905 阅读 · 0 评论 -
Boost智能指针—weak_ptr
引用计数是一种便利的内存管理机制,但它有一个很大的缺点,那就是不能管理循环引用的对象。一个简单的例子如下: #include #include #include #include class parent;class children;typedef boost::shared_ptr parent_ptr;typedef boost::shared_ptr转载 2011-12-01 18:14:04 · 2006 阅读 · 0 评论 -
sizeof
sizeof是干什么的?谁不知道?这玩意里面传个参数然后返回对应占的内存大小,类型是size_t,单位是字节。多简单点事啊。平时怎么用我还真不知道,可TMD看了相关的一些问题我就忍不住要骂人,有时得到的结果和想像的差距怎么那么大呢?不管这东西究竟实用价值多少,从其在问题中出现的频率来看有必要总结下。 一、基本内置类型 貌似没啥好说的,不过有些值和机器相关。最常见的是32位原创 2011-11-11 14:57:53 · 609 阅读 · 0 评论 -
一个比较全的C++农历算法
原文:http://bbs.chinapyg.com/viewthread.php?tid=2928 void __fastcall TForm1::Button1Click(TObject *Sender) { xDate *Date_x=new xDate();//取系统时间初始化-:) Memo1->Lines->Add("公历"+I转载 2012-02-11 20:02:55 · 7394 阅读 · 3 评论 -
类String的普通构造、拷贝构造函数与赋值函数
类String的普通构造、拷贝构造函数与赋值函数:class String{public:String(const char *str = NULL); // 普通构造函数String(const String &other); // 拷贝构造函数~ String(void); // 析构函数String & operate =(const String &other); //转载 2013-10-12 18:17:08 · 2440 阅读 · 0 评论