C/C++
阿苏
执著于嵌入式相关技术和领域的IT青年,若干年后,必然小有成就!
展开
-
在C++的类中重载operator<和流输出
#include#includeusing namespace std;class Node{ private: int a; public: Node(int a){ this->a=a; } //定义class对象的比较函数 friend bool operator if(a.a>=b.a) return true; else return false; } //定义class对象的流输出函数 friend ostream& operator return原创 2010-07-17 11:31:00 · 1504 阅读 · 0 评论 -
应用程序——INI和XML配置文件
INI配置文件的格式 为什么要用INI文件?如果我们程序没有任何配置文件时,这样的程序对外是全封闭的,一旦程序需要修改一些参数必须要修改程序代码本身并重新编译,这样很不好,所以要用配置文件,让程序出厂后还能根据需要进行必要的配置;配置文件有很多如INI配置文件,XML配置文件,还有就是可以使用系统注册表等。本文主要是为读者在实现读写INI配置文件模块之前,提供有关INI文件的格式信息。在早期的windows桌面系统中主要是用INI文件作为系统的配置文件,从win95以后开始转向使用注册表,但是还有很多系统配转载 2011-05-23 22:03:00 · 5019 阅读 · 0 评论 -
MFC中的六大关键技术
MFC中的六大关键技术这一篇主要讲解一下MFC中的6个主要的关键技术,整个Application Framework其实从本质上来说都是建立在这6个关键技术上的。所以能够了解它们的原理对理解MFC整个框架和程序设计有非常大的好处。1、MFC程序的初始化工作在MFC中所有的类都来源于一个基类:CObject。MFC程序初始化过程中,其实就是虚函数的调用的过程,分清调用执行的到底是哪一个具体的虚函数,是父类的虚函数,还是基类的虚函数,都是至关重要的。2、RTTI运行时类型识别MFC程序运行过程中需要对类的类型进原创 2011-05-22 20:07:00 · 7056 阅读 · 0 评论 -
C++中RTTI动态类型识别、静态成员、变量的四种存储方式
<br />本文主要来讲解C++中的RTTI机制,也就是动态类型识别技术,之前我在学习《C++编程思想》的时候学习过这个技术,现在也算是复习一下吧,因为RTTI在MFC程序设计中也是有一定用处的。<br /> <br />先来看一段程序,这段程序中就是使用了RTTI,<br />#include <typeinfo> #include <iostream>#include <fstream>using namespace std;ofstream out("out.txt");c原创 2011-05-21 21:59:00 · 3582 阅读 · 0 评论 -
详解C++中的多态、虚函数、父类子类
<br /> 这一篇主要是想讲解一下C++中的多态性,这也是我在学习Win32和MFC编程中碰到的,算是总结一下吧。<br /> <br />首先来看一段程序:<br /> <br />#include <iostream>using namespace std;class CObject{public: virtual void Serialize(){ cout<<"CObject::Serial() /n/n"; } };class CDoc原创 2011-05-20 21:46:00 · 7537 阅读 · 0 评论 -
string类的一些成员函数
1、const char *data();data()函数返回指向自己的第一个字符的指针. string str3="you are stupid!"; char* cc=(char*)str3.data(); *(cc+1)='n'; cout由于data()函数返回的是const char*,所以不能直接通过指针修改返回的字符串的值,如果要修改,必须把类型转化为char*.2、const char *c_str();c_str()函数返回一个指向正规C字符串的指针, 内容与本字符串相同. 作原创 2010-08-30 22:31:00 · 2045 阅读 · 0 评论 -
C++语言中的一些编程技巧
<br />1、如何对复合类型数据构造STL模版的比较函数。<br /> <br />对于通用的STL算法,比如一些排序算法或比较算法,都能够自己定义比较函数。<br />比如下面的形式:<br /> <br />bool compare(Suitor a,Suitor b){ //binary predicate,注意比较函数中的参数一定要是Suitor类型的,不能是Suitor*类型<br /><br /> if( a.height < b.height ) return true;<br />原创 2010-08-18 19:28:00 · 674 阅读 · 0 评论 -
命令行参数的使用、goto标签的使用以及for循环中局部变量声明问题
/* * 测试命令行参数 */#includeusing namespace std;int main(int argc ,char* argv[]){ cout cout}原创 2010-07-26 11:37:00 · 1402 阅读 · 0 评论 -
C语言string.h中的函数
1、#include void *memcpy( void *to, const void *from, size_t count );功能:函数从from中复制count 个字符到to中,并返回to指针。 如果to 和 from 重叠,则函数行为不确定。注意点:(1)第一个参数是目标指针,第二个参数是起始指针,不要搞错了。 (2)拷贝过程中,计数的单位是字符,也就是字节。例子:#include#includeusing namespace std;int main(){ int a原创 2010-07-21 15:43:00 · 918 阅读 · 0 评论 -
C++值传递、引用传递、指针传递以及STL模板堆的使用
#includeusing namespace std;void change(int& a,int b){ //通过引用,引用是原变量的别名,变量值返回时会受影响 a=5;}void change1(int* a,int b){ //通过指针进行传递,变量值返回时会受影响 *a=0;}void change2(int a,int b) { //变量值返回时不会受影响 a=2;}int main(){ int c=6,d=4; change(c,d); //直接传递变量 cout原创 2010-07-17 11:45:00 · 1203 阅读 · 0 评论 -
C++中的一些注意点(part5)
<br />#include<iostream><br />#include<queue><br />using namespace std;<br />struct Node{<br /> <br /> int a;<br /> Node* parent;<br />};<br />queue<Node> Queue;<br />int main(){<br /> <br /> Node array[4];<br /> for(int i=0;i<4;i++){<br /> <br /> array[原创 2010-07-17 11:37:00 · 640 阅读 · 0 评论 -
C++中全局变量的编译器初始化值
#includeusing namespace std;char a[2][2]; //全局的char数组的元素编译器默认初始化为'/0'bool test; //全局的bool变量默认为false int main(){ cout cout return 0;}原创 2010-07-17 11:36:00 · 1100 阅读 · 0 评论 -
C++中的一些注意点(part3)
<br />#include<iostream><br />#include<queue><br />using namespace std;<br />bool test; //bool变量默认的初始值为false <br />typedef struct Node{<br /> <br /> int a;<br /> friend bool operator<(const Node& a,const Node& b){ //定义struct结构的比较函数 <br /> if( a.a< b原创 2010-07-17 11:35:00 · 555 阅读 · 0 评论 -
C++中的一些注意点(part2)
#include#include#includeusing namespace std;typedef struct{ int detail[3][3];}Map;int main(){ Map m,n; //利用指针进行struct结构体中数组的赋值操作 for(int i=0;i scanf("%d",*m.detail+i); for(int i=0;i scanf("%d",*n.detail+i); for(int i=0;i printf("%d ",*((*m.detail)+i));原创 2010-07-17 11:32:00 · 601 阅读 · 0 评论 -
windows程序设计相关思想
<br />就我个人观点,C++/MFC 程序设计必须跨越四大技术障碍:<br />1. 对象导向观念与C++ 语言。<br />2. Windows 程序基本观念(程序进入点、消息流动、窗口函数、callback...)。<br />3. Microsoft Foundation Classes(MFC)本身。<br />4. Visual C++ 整合环境与各种开发工具(难度不高,但需熟练)<br /> <br /><br />SDK - Software Development Kit,原指软件开发工原创 2011-05-24 20:24:00 · 1506 阅读 · 0 评论