摘要: #ifndef TEST_OBSERVER_SAFE#define TEST_OBSERVER_SAFE#include #include #include #include #include #include #include namespace TestObserver{ class Observable; class Observer : public boost::enable_shared_from_this { public: Observer() {} virtual ~Observer() {printf("%p is destructed!\n", thi 阅读全文
posted @ 2014-04-05 15:42 forgood 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 类中的静态成员真是个让人爱恨交加的特性。我决定好好总结一下静态类成员的知识点,以便自己在以后面试中,在此类问题上不在被动。 静态类成员包括静态数据成员和静态函数成员两部分。 一 静态数据成员: 类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员。和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则。同时,静态数据成员还具有以下特点: 1.静态数据成员的定义。 静态数据成员实际上是类域中的全局变量。所以,静态数据成员的定义(初始化)不应该被放在头文件中。 其定义方式与全局变量相同。举例如下: xxx.h文件 class 阅读全文
posted @ 2013-11-22 10:32 forgood 阅读(173) 评论(0) 推荐(0) 编辑
摘要: #include int main(int argc, char **argv){ const int* pA = new int(3); int& iB = const_cast(*pA); //pA的值可以改变 int* pC = const_cast(pA); iB = 5; *pC = 6; std::cout (iA);//另外申请一块空间,副本 pC = const_cast(&iA); iB = 987; *pC = 999; std::cout << "a=" << iA << std::endl; std 阅读全文
posted @ 2013-11-03 18:45 forgood 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 1 class CObject 2 { 3 friend class CPlyLoader; 4 public: 5 CObject::CObject() : m_pMaterial(NULL) {} 6 CObject::~CObject() 7 { 8 m_Vertex.clear(); 9 m_VertexNormal.clear();10 m_FacetIndices.clear();11 m_FacetNo... 阅读全文
posted @ 2013-11-03 18:29 forgood 阅读(243) 评论(0) 推荐(0) 编辑
摘要: #include namespace Virtual{ class CBase { public: CBase() {} virtual ~CBase() {} void testBase() { print(); } virtual void print() = 0; }; class CDived : public CBase { public: CDived() {} ~CDived() {} void testDived() {testBase();} void print() {std::cout << "CDived's print() is... 阅读全文
posted @ 2013-11-03 09:25 forgood 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 1 #pragma once 2 3 #include 4 5 namespace WYP 6 { 7 class CBase 8 { 9 public:10 int m_BasePublic;11 12 void setY(int y) {m_y = y;}13 void setZ(int z) {m_z = z;}14 int getX() {return m_x;}15 int getZ() {return m_z;}16 17 protected:18 ... 阅读全文
posted @ 2013-10-31 23:46 forgood 阅读(263) 评论(0) 推荐(0) 编辑
摘要: #pragma once#include #include #include namespace WYP{ class CBase { public: CBase() : m_BaseX(0), m_ptr(NULL) {std::cout setPtr(pInt); std::cout getInt() setMemberX(3); std::cout getMemberX() bulid(123); pBase->print(); std::cout << "xxxx\n" << "\n" ; delete pBase; 阅读全文
posted @ 2013-10-31 23:07 forgood 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 关于计算的公理表达通常颇具争论。然而,现代计算最重要的理论支柱之一的图论并不是这些公理表达之一。无数工程领域(从设计路由器和网络到设计构成移动设备核心的芯片)都是图论的应用。作为C++应用程序软件开发人员,我们通常需要直接将实际工程问题转化成一个等价的图论问题。如果有一个可靠的基于C++的通用图库,就可以帮助我们实现这个转换,这样的图库显然非常受欢迎:Boost Graph Library (BGL) 将填补这项空白。在本文中,您首先将创建一个无向图,然后按照常规的遍历例程创建一个有向图。随后,您可以应用一些经典算法,所有算法都不需要添加大量代码。这就是 BGL 的神奇之处。下载和安装BGL 阅读全文
posted @ 2013-10-22 13:08 forgood 阅读(1274) 评论(0) 推荐(0) 编辑
摘要: #include#include#include#include#include#include#includeusing namespace std; const int MaxInt = 0x7fffffff;const int Max = 100010; struct Node{ int next; int value; bool flag; Node():next(0), value(0), flag(false) { } Node(int nxt, int val): next(nxt), value(val), flag(false) { }};vec... 阅读全文
posted @ 2013-10-09 21:44 forgood 阅读(369) 评论(0) 推荐(0) 编辑
摘要: http://ac.jobdu.com/problemstatus.php?pid=1543#include#include#include#includeusing namespace std;//#define llu dtypedef unsigned long long lld;const int Max = 1000;int path[Max];void getP_Q(lld n, lld &p, lld &q){ int cnt = 0; lld tmp; while (n != 1) { tmp = n>>1; if (n ==... 阅读全文
posted @ 2013-10-07 23:23 forgood 阅读(147) 评论(0) 推荐(0) 编辑