易截截图软件、单文件、免安装、纯绿色、仅160KB

C++接口与实现分离的2种方法 (C/C++)

方法一:使用另一个实现类分装类的私有成员和函数,这种方法称为Pimpl方法。
test.h
#pragma once
#include "shared_ptr.hpp"
class CTest
{
public:
    CTest(void);
    ~CTest(void);
    void DoSomething();
private:
    class CTestImp;
    boost::shared_ptr<CTestImp> pimpl_;
};
test.cpp
#include "Test.h"
#include <iostream>
class CTest::CTestImp
{
private:
    CTestImp(CTestImp const &){}
    CTestImp & operator=(CTestImp const &){}
public:
    CTestImp(){}
    void DoSomething();
};
void CTest::CTestImp::DoSomething()
{
    // do something.
    std::cout<<"Imp class do something."<<std::endl;
}
CTest::CTest(void)
{
    boost::shared_ptr<CTestImp> pImp(new CTestImp);
    pimpl_ = pImp;
}
CTest::~CTest(void)
{
}
void CTest::DoSomething()
{
    pimpl_->DoSomething();
}
方法二:使用抽象类来实现接口与实现的分离。
x.h 
#pragma once
#include <stdio.h>
#include "shared_ptr.hpp"
using namespace boost;
class X
{
public:
    virtual void f() = 0;
    virtual void g() = 0;
protected:
    ~X() { printf("~X\n");}
};
shared_ptr<X> createX();
x.cpp 
#include "X.h"
#include <stdio.h>
class X_impl: public X
{
private:
    X_impl(){};    
    X_impl(X_impl const &);
    X_impl &&n


相关文档:

C\C++相关问题整理(1)

随机生成整数,然后算出正负零
void getrand(int *a, int m)
{
    int i;
    srand(time(NULL));
    for (i=0; i<m; i++)
    {
        a = rand()-rand();
    }
}
int main(int argc, char* argv[])
{
    ......

VIM+GDB linux c/c++ 的编程利器

原文:http://blog.csdn.net/jackyvan/archive/2010/01/15/5193693.aspx
其实VIM也能把编译 调试集成在一起,像是一个IDE一样。
首先现在VIM的源码,因为要集成调试环境的话需要重新编译VIM才行,所以我们不如重新安装一个。
VIM的现在地址:
http://www.vim.org/sources.php
然后下载VIMGDB,这是vim的集成调试环境的 ......

C输入输出

字符输入输出:
aa = getchar(); 
putchar(a); 
 
格式输出:
printf(格式控制, 输出表列);
%d 十进制数  %md m为指定的宽度 若数据位数小于m,则左端补以空格;若大于m,则按实际位数输出
%ld 长整型数据  %mld 指定字段宽度
%o 八进制整数形式  %mo
%x 十六进制整数形式  %m ......

MS C、STL、MFC对Windows Mobile开发的支持

MS C、STL、MFC对Windows Mobile开发的支持
   
所有资料来自MSDN
--------------------------------------------------------------------------------
1.Mobile支持的Microsoft C
wcsncpy_s
wcscpy_s
wcscat_s
strncpy_s
strcpy_s
strcat_s
memmove_s
memcpy_s
_wsplitpath_s
_wmak ......

【转】【C\C++语言入门篇】 结构体

前面两篇基本把指针给介绍完了,相信大家对指针已经不是那么陌生了。也不会因为指针和数组之间的关系而导致混淆了。大家可能也迫不及待想了解下后来的知识。今天我们就介绍下结构体。
对于结构体,既然叫结构体,形象上我们可以理解其就是一堆数据集合在一起形成一个结构。就比如一个学生的信息包括:学号、姓名、班级、年 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号