- 博客(41)
- 资源 (604)
- 收藏
- 关注
转载 在构造和析构中抛出异常
测试验证在类构造和析构中抛出异常, 是否会调用该类析构./// @file ClassroomExamples.cpp/// @brief xxxx-xxxx课堂笔记的验证代码/// 测试c++异常/// 在构造和析构中抛出异常#include #include #include "MyException.h"#include "TestThrow.h"using name
2015-12-31 01:19:38 915
转载 测试 __try, __finally, __except
C语言标准是没有 try-catch语法 的, M$家自己提供了一组./// @file ClassroomExamples.c/// @brief 验证C语言的非标准try, catch#include #include #include #include #include #include void fnTest_TryCatchByM$();int main(in
2015-12-30 23:45:30 1003
转载 测试 setjmp 和 longjmp 的用法
C语言goto是不能跨函数的, 原因: 跨函数需要保存现场, 回来需要恢复现场.setjmp 和 longjmp 配合, 可以实现在C语言程序中跨函数跳转.M$给的例子, 对于测试setjmp和longjmp整的复杂了.我写了一个简单明了的测试程序, 只测试 setjmp和longjmp./// @file ClassroomExamples.c/// @brief xx
2015-12-30 22:59:37 562
转载 stringstream的读写
主要演示stringstream的赋值操作, 读取操作./// @file exam_x_x.cpp/// @brief/**3.设字符串string="1 2 3 4 5 6 7 8 9",用串流I/O的方法编程逐个读取这个串的每个数,直到读完为止,并在屏幕上输出。*/#include #include #include using namespace std;vo
2015-12-30 12:49:18 955
转载 用宏模拟C++模板的方法1
用宏模拟C++模板的方法1/// @file ClassroomExamples.c/// @brief 用宏模拟C++模板的方法1/**用宏模拟C++模板C语言中, 合法函数名或变量名不能带*, 如果宏的入参用##连接到函数名或变量名上, 会报错的, 不支持入参为DataType*的用法.模板是C++的特性, 用宏模拟模板是比较恰当的. 因为如果是在C++中做, 直接就用模
2015-12-29 22:07:02 1891
转载 auto_ptr基本用法和实现的整理
今天老师提到了M$实现的类模板 auto_ptr, 看了下, 看着这个别扭. 整理了一下, 形成my_auto_ptr, 供学习理解用.// TEMPLATE CLASS my_auto_ptrtemplateclass my_auto_ptr{public: /// for : my_auto_ptr pMyAutoPtr = new char[100]; //
2015-12-28 23:24:15 815
转载 (类型转换)运算符重载
CA a2 = a1; 时, 会不会进构造函数?验证了一下, 不会进构造函数, 只会进拷贝构造函数.(int)a2时,需要重载类型转换运算符, 也验证了一下.class CA{public: CA() : m_iTest(1) { } virtual ~CA() {} /// 拷贝构造函数 CA(const CA&
2015-12-28 21:17:08 616
转载 建立一个手工练习的命令行编译环境
最近要提高手工做题的准确度和熟练度.先要准备一个最丑陋的编译环境.windows记事本编译报错后, 要能找到行号. 有可能使用过程, 记事本的设置被改过, 需要将状态栏显示出来, 行号显示出来.为.c和.cpp分别准备2个空文件 exam_x_x_c.c 和 exam_x_x_cpp.cpp之所以准备的是空文件* 是为了提高
2015-12-27 19:42:22 938
原创 用宏实现模板功能
前言今天遇到一道作业, 让我想了很久. 这道题真奇葩, 已经被老师玩哭了^_^我作出来一个结果, 不知道合不合老师的心意~~题目4.用宏实现模板功能,分别输出void main(){ADD(int)(1,2);ADD(float)(1.0f,2.2f);ADD(int)(10,20);ADD(char*)("hello","wolrd");}测试工程//
2015-12-27 00:26:10 2209
转载 用类模板做的智能指针
前言做一个类模板的准备工作.先准备一个普通类, 她的关联类都调试过. 将准备改到类模板的类声明为template, 一个类模板放在一个.h中加入关联类的前向声明在类模板中加入友元类模板的声明为了维护方便, 将所有类实现都内联实现. 不要再放到类外部, 防止该类模板进行类特例时, 看的眼花~测试代码// SmartPtrD.cpp : Defines the entr
2015-12-26 13:38:37 1234
转载 类重载全局函数指针
endl中有类重载全局函数指针的效果.测试代码/// @file exam_x_x.cpp/// @brief 类重载全局函数指针#include #include using namespace std;class CA{public: CA() {} ~CA() {} CA& operator << (char cIn) {
2015-12-26 09:07:57 393
转载 智能指针模拟C
前言从智能指针模拟B 进化了一个指针指针模拟版本* 将实际的数据类从引用计数类中剥离, 成为一个单独的类, 方便移植新的类到智能指针, 方便数据类的维护.* ISmartPtrElement从抽象类改为普通类, 构造为数据类指针, 保存构造入参的数据类指针到ISmartPtrElement* 当ISmartPtrElement.Release为0时,删除数据类* CSmart
2015-12-25 06:34:15 625
转载 智能指针模拟B
前言 在智能指针模拟A 进化来的智能指针模拟版本.* 智能指针中的元素变为ISmartPtrElement*(参考计数类指针), 压入的元素指针都是继承自ISmartPtrElement* 智能指针构造时, 参考计数++* 智能指针析构时, 参考计数--* 智能指针重载 operator =, 前一个对象参考计数 --, 新对象参考计数++* 当参考计数为0时, 参考计数
2015-12-25 02:33:38 415
转载 智能指针模拟A
前言* 将new出的对象, 直接赋值给智能指针构造. 智能指针析构时, 调用构造时给定的类对象.* 在智能指针中, 模拟指针的常用操作. 重载运算符 -> & * +测试程序// SmartPtrA.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include
2015-12-25 00:27:40 452
转载 字符串类中重载运算符
测试程序/// @file exam_1_1.cpp/**1.完善MyString, 引用计数RefMyStringoperator=operator+operator[](int nIndex)operator==operator!=operator>*/#include "common.h"#include "MyString.h"void fnTestStri
2015-12-24 13:52:47 2166
转载 运算符重载的例子
/// @file ClassroomExamples.cpp/// @brief 2015-1223课堂笔记的验证代码#include #include #include "RMB.h"using namespace std;void clear_cin();void fnTest_Operator_overloading();int main(int argc, cha
2015-12-24 01:08:20 927
转载 常成员函数
以前也见到过const指针不能转非const指针的报错.error C2440: 'return' : cannot convert from 'const char [16]' to 'char *'以前的处理都是直接分析,是否可以修改, 如果可以修改的指针, 直接强转成非const指针用.今天和同学讨论问题, 才真正理解了这个问题.#include using
2015-12-23 11:36:47 602
转载 在类有成员变量的场景下, 按照虚表原理, 模拟虚函数实现
前言当类没有成员变量的情况下, 类首地址有4个字节的空间, 这里可以放我们模拟出来的虚表入口地址.当类有成员变量的情况下, 类首地址就是成员变量, 所以, 为了模拟虚表实现, 需要在成员变量前, 再定义一个int型变量, 用来存放模拟的虚表入口地址.现在还得不到虚析构函数的地址, 暂时按照非虚析构函数进行模拟.这个实验是在C++中模拟的.模拟虚函数实现的用途在非OOP
2015-12-22 12:44:00 1177
转载 未知类函数指针的size
今天同学那有了一段稀罕代码, 计算出的类函数指针size = 16. 他也找到了原因.我也学习一下.class CUnknownClass; ///< 不存在的类/// 只定义一个不存在的类的函数指针是不会错的的typedef void (CUnknownClass::*PFN_ClassMethod)();class A{public: PFN_ClassMetho
2015-12-22 00:37:43 671
转载 类虚函数表原理实现分析
原理分析当调用一个虚函数时, 编译器生成的代码会调用 虚表地址[0](param1, param2)这样的函数. 已经不是在调用函数名了.当我们将虚表地址[n]中的函数实现改为另外的函数, 虚函数的实现就由我们来控制了.实验根据虚表原理, 实验一下修改自己程序的虚函数表项地址. 使编译器生成的代码执行一个虚函数A时, 执行的是我们自己定义的非虚函数B.知识点
2015-12-19 19:54:44 1194
转载 中文关键字编程
vs2010, vs2013可以用中文变量名, 中文函数名, 中文类型别名vc6不支持, vs2003, vs2005, vs2008没实验.用途: 可以配合宏的使用, 将C++语言伪装或模拟成另外一种语言的语法// ClassroomExamples_vs2010.cpp : Defines the entry point for the console applic
2015-12-19 14:12:18 961
转载 从汇编层面看多个赋值语句写在一行, 用','符号分开
在看算法例题时, 发现在一个宏中出现了previous[i] = i-1, next[i] = i+1; 这样的写法我就想知道他为啥这么写, 为啥不写成如下语句.previous[i] = i-1;next[i] = i+1;难道有什么特别的好处么?看调试版的反汇编实现数组内存地址previous[]数组内存地址 : dword ptr [ebp-2Ch]
2015-12-18 11:56:42 2019
转载 (ZT) Is it legal (and moral) for a member function to say delete this?
original url from : https://isocpp.org/wiki/faq/freestore-mgmt#delete-thisAs long as you’re careful, it’s okay (not evil) for an object to commit suicide (delete this).Here’s how I define “c
2015-12-17 20:06:20 385
转载 CLASS_CREFCOUNT
用宏实现一个引用计数类, 可以对不同的所有者类, 产生不同的引用计数类./// @file exam_x_x.cpp/// @brief 测试引用计数类#include #include #include "RefCount.h"#include "RefOwner.h"using namespace std;void clear_cin();/// 用
2015-12-17 13:01:29 455
转载 CRefCount
一个单线程的引用计数类, 针对具体类./// @file exam_x_x.cpp/// @brief 测试引用计数类#include #include #include "RefCount.h"#include "RefOwner.h"using namespace std;void clear_cin();void fnTestRefCount();
2015-12-17 12:33:32 647
转载 time opt
用time系列函数, 取得保存当前时间.time的F1帮助有Demo.// MyDate.h: interface for the CMyDate class.////////////////////////////////////////////////////////////////////////#if !defined(AFX_MYDATE_H__D3DBF2A4_
2015-12-16 09:08:46 171
转载 simple string class
/// @file exam_1_1.cpp/// @brief /**1. 完成一个字符串类, 操作变长字符串class CMyString {private:char* m_lpString;int m_nLen;int m_nSpaceLen;};*/#include #include using namespace std;#include "
2015-12-14 23:09:50 497
转载 new对象数组时的内存布局
#include #include using namespace std;#define SAFE_DELETE(x) \{ \ if (NULL != (x)) \ { \ delete (x); \ (x) = NULL; \ } \}#define SAFE_DELETE_ARY(x) \{ \ if (N
2015-12-14 21:37:40 915
转载 拷贝构造函数和const成员函数
使用非const成员函数,引起的拷贝构造函数报错class CStudent { /// 常量定义public: enum {NAME_SIZE_MAX = 64}; /// 构造, 拷贝构造, 析构函数public: CStudent(); CStudent(const char* pcName, size_t nId = 1, int iAge
2015-12-14 11:14:43 1759
转载 class 学员信息录入
/// @file exam_1_3.cpp/// @brief /**3.写一个学员信息录入程序,以学员信息类数组来放置录入的学员信息,并提供多种录入方式:(1)学号和年龄为默认,学号默认为从1开始递增,年龄默认为20(2)学号,姓名,年龄均不为默认,以学号和姓名来做为构造函数的参数(但要判断学号是唯一的)实现学员信息类的拷贝,(利用拷贝构造函数)*/#include #
2015-12-12 15:18:04 1050
转载 空类和空结构体的大小
/// @file exam_x_x.cpp/// @brief 2.写程序求出一个空类和空结构体的大小#include #include using namespace std;class CEmpty{public: CEmpty() {} ~CEmpty() {}};typedef struct _tag_Empty{}TAG_EMPTY;
2015-12-12 12:27:10 655
转载 C++中的成员变量是独立的,成员方法是共享的。
/// @file exam_1_1.cpp/// @brief 1.通过写程序证明,C++中的成员变量是独立的,成员方法是共享的。#include #include using namespace std;class CTest{public: CTest() {} ~CTest() {} void setter_iTest(int iIn) {m_
2015-12-12 12:19:21 942
转载 (ZT) cout打印不了函数地址
/// cout 打印不了函数指针 /// http://stackoverflow.com/questions/2064692/how-to-print-function-pointers-with-coutQI want to print out a function pointer using cout, and found it did not work. But
2015-12-12 12:08:21 1070
转载 位域操作的函数封装
/// @file \exam_cmt100\LSieve\main.c/// @brief 线性筛法#include #include #include #include #ifndef size_ttypedef unsigned int size_t;#endif#ifndef BOOLtypedef int BOOL;const int TRUE = 1;co
2015-12-11 13:06:33 1000
转载 this指针的含义
类(类实例)的方法地址都相同, 类实例的数据是不同的, 为了使用不同对象的数据, 编译器自动加入了this指针到ECX, 用来代表不同的类实例. this指针代表类结构的首地址(类成员数据可以从类结构首地址偏移地址得到)87: ca.setData('0', 0x55aa);004017C8 68 AA 55 00 00 push 55AAh
2015-12-10 22:47:46 597
转载 结构(公有类)的运算符重载
typedef struct _tag_foo{ int iFoo; int iBar;}TAG_FOO;/// 对结构(公有类)的操作符重载要放在结构体外面才能编译过ostream& operator<<(std::ostream& os, _tag_foo Src){ os << "TAG_FOO1 " << Src.iFoo << " " << Src.i
2015-12-08 22:30:07 476
转载 print float as int 的分析
有一段错误的函数void fnPrintFloatAsInt(){ float f = 2.25f; printf("%d", f); /** run result 0 */}打印出的结果是不对的.分析这种错误现象背后的原因.结合反汇编代码和协处理器寄存器值, 可以分析出问题原因.27: printf("%d", f)
2015-12-08 20:21:59 763
转载 use ifstream read a file
/// @file \LsSourceCounter\src\main.cpp/// @brief 主模块#include #include #include #include #include #include using namespace std;void clear_cin();bool fnOpenFile(const char* pcFilePathName,
2015-12-08 11:25:01 435
转载 clear cin buffer
make a function to clear cin buffer.void clear_cin(){ cin.clear(); cin.ignore((numeric_limits::max)(), '\n');}demo:/// @file exam_1_7.cpp/// @brief #include #include #include #in
2015-12-08 01:51:50 820
pcasm-book-simplified-chinese.zip
2014-05-09
Advanced-Windows-Debugging-sources-awd.zip
2014-04-28
TrueCrypt 7.1a Source.zip
2013-11-01
filedisk-17-org.zip
2013-10-31
Sysinternals_Source.zip
2013-09-16
vs2010_Sample_C_plus_plus.zip
2013-08-08
DebugViewV4_81.zip
2013-03-13
srcSpyxx.zip
2012-09-30
ProcessExplorer
2011-11-05
cppunit-1.12.1.tar.gz
2011-08-30
STLport-5.2.1.tar.bz2
2011-08-20
工程目录结构模板设计_2011_0309_2054
2011-03-10
ResourceHack
2010-11-26
NTFS文件系统扇区存储探秘_电子书和随书光盘.7z
2019-03-18
Linux C程序设计王者归来_book_cd.7z.004
2018-08-22
Linux C程序设计王者归来_book_cd.7z.003
2018-08-22
Linux C程序设计王者归来_book_cd.7z.002
2018-08-21
Linux C程序设计王者归来_book_cd.7z.001
2018-08-21
eclipse-java-mars-2-win32-x86_64.zip
2017-04-21
International standard ISO/IEC C++98
2015-12-25
book code C语言名题精选百则
2015-12-16
depends22_x64.zip
2015-07-26
C++_Templates_The_Complete_Guide_book_code.zip
2015-06-14
quicktimesdk 7.3.0.70 for windows
2015-05-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人