〖C++技术〗
文章平均质量分 50
dongfengsun
这个作者很懒,什么都没留下…
展开
-
C++中对文件进行读写操作
#include "stdafx.h"#include#include#includeusing namespace std;//从键盘上读取字符的函数void read_save(){ char c[80]; ofstream outfile("f1.dat"); //以输出方工打开文件 if(!outfile){ cerr exit(1); } cin.getlin原创 2007-01-06 17:37:00 · 5325 阅读 · 0 评论 -
关于inline函数
(一)inline函数(摘自C++ Primer的第三版) 在函数声明或定义中函数返回类型前加上关键字inline即把min()指定为内联。 inline int min(int first, int secend) {/****/}; inline函数对编译器而言必须是可见的,以便它能够在调用点内展开该函数。与非inline函数不同的是,inline转载 2007-01-09 10:43:00 · 1762 阅读 · 0 评论 -
C++箴言:避免析构函数调用虚函数
原文地址:http://blog.csdn.net/pdiy/archive/2005/12/14/551983.aspx 如果你已经从另外一种语言如C#或者Java转向了C++,你会觉得,避免在类的构造函数或者析构函数中调用虚函数这一原则有点违背直觉。但是在C++中,违反这个原则会给你带来难以预料的后果和无尽的烦恼。 正文 我想以重复本文的主题开篇:不要在类的构造或者析构函转载 2007-01-10 10:58:00 · 1483 阅读 · 0 评论 -
深入理解C/C++函数指针
原文地址:http://blog.sina.com.cn/u/1082089673函数指针数组的妙用 笔者在开发某软件过程中遇到这样一个问题,前级模块传给我二进制数据,输入参数为 char* buffer和 int length,buffer是数据的首地址,length表示这批数据的长度。数据的特点是:长度不定,类型不定,由第一个字节(buffer[0])标识转载 2007-02-05 20:05:00 · 2587 阅读 · 2 评论 -
多态性——vptr和vtable
原文地址:http://www.cppblog.com/fwxjj/archive/2007/01/25/17996.html 多态性 (polymorphism) 是面向对象编程的基本特征之一。而在C++ 中,多态性通过虚函数 (virtual function) 来实现。我们来看一段简单的代码: #include using namespace std; class转载 2007-02-05 22:39:00 · 2445 阅读 · 0 评论 -
c++笔试题汇总
今天去9City笔试才发现很多基本的东西都忘记了,以后面试前要看看这篇文章了!唉,老了!①链表反转单向链表的反转是一个经常被问到的一个面试题,也是一个非常基础的问题。比如一个链表是这样的: 1->2->3->4->5 通过反转后成为5->4->3->2->1。最容易想到的方法遍历一遍链表,利用一个辅助指针,存储遍历过程中当前指针指向的下一个元素,然后将当前节点元素的指针反转后,利用原创 2007-03-26 19:30:00 · 87017 阅读 · 33 评论 -
明晰C++内存分配的五种方法的区别
Origin:http://www.zhmy.com/blog2006004/goto723/archives/2006/29705.shtml在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。 堆,就是那些由new分配的内存块,它们转载 2007-04-01 13:32:00 · 2941 阅读 · 2 评论 -
字符数组VS字符指针
1.以字符串形式出现的,编译器都会为该字符串自动添加一个0作为结束符,如在代码中写"abc",那么编译器帮你存储的是"abc/0"2."abc"是常量吗?答案是有时是,有时不是。不是常量的情况:"abc"作为字符数组初始值的时候就不是,如char str[] = "abc";因为定义的是一个字符数组,所以就相当于定义了一些空间来存放"abc",而又因为字符数组就是把字符一个一个地存放的转载 2007-04-07 10:35:00 · 2196 阅读 · 2 评论 -
关于默认构造函数的几个错误认识
假期间闲来无事,就下载了某大师的VC++视频资料。在讲到C++时,说是如果程序员没有自己定义默认构造函数,那么编译器会自动为我们产生一个默认的构造函数。 本来这个错误的认识很多程序员都有,不足为奇。但有这么多年编程经验的高手也有这样的错误认识就不禁让我哑然了。 其实编程语言和我们所用的任何软件没有区别,例如Photoshop、AutoCAD之类。其唯一不同的是我们原创 2008-02-18 20:34:00 · 13559 阅读 · 21 评论 -
C++中的function object
From:http://www.cppblog.com/tim/archive/2007/10/15/34250.html 看过了funciton object中的部分内容,感觉这些技术、 概念等真的需要慢慢体会,才能感受到它的博大精深。 看下面的这个例子: #include #include #include using namespace std; void转载 2008-09-12 15:06:00 · 1828 阅读 · 0 评论 -
DLL的Export和Import
DLL的export是指将DLL中的函数和数据输出到其它程式中,以供其使用。DLL的import是指使用DLL的程式引入DLL中的函数和数据。 DLL的export DLL中包含有一个表,称为export table(以下简称ET),其中包含了DLL中可以被外部程式使用的所有函数和数据的名字。只有记录在ET中的函数和数据才可以被外部程式所使用(如果没有.DEF文件的话),其它转载 2007-01-09 10:26:00 · 10789 阅读 · 0 评论 -
与全局变量构造析构顺序有关的一道面试题(C++)
原文地址:http://blog.csdn.net/wstarx/archive/2006/06/26/836373.aspx题目是#include int main(){ std::cout return 0;}如何在不修改上述代码中mian()里面的部分,使输出的内容为:StartThis is in mainEnd解答:此题我一开始想到的方法是重写std里得cout类,转载 2007-01-10 11:21:00 · 2233 阅读 · 3 评论 -
#define、const、typedef的差别
#define 并不是定义变量啊#define 只是用来做文本替换的例如:#define Pi 3.1415926float angel;angel=30*Pi/180;那么,当程序进行编译的时候,编译器会首先将 “#define Pi 3.1415926”以后的,所有代码中的“Pi”全部换成 “3.1415926”然后再进行编译。 我查到一个讲const与#d转载 2007-01-08 14:31:00 · 4775 阅读 · 0 评论 -
虚函数释义
①//类型兼容规则举例#include "stdafx.h"#include using namespace std;class B0//基类B0声明{public: void display(){cout};class B1: public B0//公有派生类B1声明{public: void display(){cout};class D1: public B1//公有原创 2007-01-07 01:41:00 · 1271 阅读 · 0 评论 -
虚基类释义
#include "stdafx.h"#include#includeusing namespace std;class person{//声明基类 protected: int age; char sex; string name;public: person(int a,char s,string nam){ age=a; sex=s; name=nam; }};class原创 2007-01-07 01:45:00 · 1553 阅读 · 0 评论 -
C++多继承的细节
这几天写的程序应用到多继承。以前对多继承的概念非常清晰,可是很久没用就有点模糊了。重新研究一下,“刷新”下记忆。 假设我们有下面的代码: #include class A { private: char data; public: A(){data = A;} virtual void Show(){printf("A/n");}; virtual void Di转载 2007-01-07 16:10:00 · 19332 阅读 · 2 评论 -
GCC编译器的使用
原文地址:http://www.myplaces.com.cn/index.php/action/viewspace/itemid/21751看下面的例子:test.c#includemain(){ char *str="I like Linux! I advices you jion in the Linux World"; printf("%s/n",str)转载 2007-01-07 21:57:00 · 1628 阅读 · 0 评论 -
gcc与g++的区别
gcc和g++都是GNU(组织)的一个编译器。误区一:gcc只能编译c代码,g++只能编译c++代码两者都可以,但是请注意:1,后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是c++程序,注意,虽然c++是c的超集,但是两者对语法的要求是有区别的。C++的语法规则更加严谨一些。2,编译阶段,g++会调用gcc,对于c++代码,两者是等价的,但是因转载 2007-01-07 22:53:00 · 2159 阅读 · 0 评论 -
C++必知的几个知识点
并不完全算是我的原创,只是在原来文章基础上加上了一点自己的理解.1.结构大小 int *pi = new int[12];中的pi纯粹是个指针变量,它就是一个指针,在32位环境下占4个字节。pi申请完内存后,是整个内存块的首地址,*pi代表的就是第一个元素,每个元素为int类型的,当然为4了,如果为char *pi = new char[12];cout int原创 2007-01-06 13:35:00 · 2116 阅读 · 0 评论 -
用指向基类对象的指针输出数据
#include "stdafx.h"#include#includeusing namespace std;class student{private: int num; int age; float score;public: student(int ,int ,float); void display();};//定义构造函数 student::student(int n,i原创 2007-01-06 23:56:00 · 1333 阅读 · 0 评论 -
《高质量C++/C编程指南》第9章:类的构造函数、析构函数与赋值函数
构造函数、析构函数与赋值函数是每个类最基本的函数。它们太普通以致让人容易麻痹大意,其实这些貌似简单的函数就象没有顶盖的下水道那样危险。 每个类只有一个析构函数和一个赋值函数,但可以有多个构造函数(包含一个拷贝构造函数,其它的称为普通构造函数)。对于任意一个类A,如果不想编写上述函数,C++编译器将自动为A产生四个缺省的函数,如 A(void);转载 2007-01-07 18:19:00 · 1909 阅读 · 0 评论 -
cygwin/gcc与MinGW
cygwin/gcc和MinGW都是gcc在windows下的编译环境,但是它们有什么区别?在实际工作中如何选择这两种编译器呢? cygwin/gcc完全可以和在linux下的gcc划等号,这个从boost库的划分中就可以看出来端倪,cygwin下的gcc和linux下的gcc使用的是相同的Toolsets。 所以完全可以和linux一起同步更新转载 2007-01-07 22:47:00 · 9348 阅读 · 0 评论 -
Symbian中窥探C++编程功底(续)
前几天发了篇帖子《Symbian中窥探C++编程功底》,没想到骂声一片! 这让我想起来一个很古老的故事:话说一艘船出了问题,无法起锚。于是船长请来有经验的老船匠,老船匠敲了几下搞定了。当船长问他要多少钱时,他要200美金!于是船长很不高兴,就问他只是敲了几下,哪里值200美金了?至于船匠的回答,我想大多数人都知道了! 当问题被明显的指出来的时候,大家都觉得很easy!而如何找出原创 2009-01-04 13:24:00 · 4184 阅读 · 14 评论