05 2012 档案
C++中的虚函数(virtual function)
摘要:1回顶部一.简介 虚函数是C++中用于实现多态(polymorphism)的机制。核心理念就是通过基类访问派生类定义的函数。假设我们有下面的类层次:class A{public:virtual void foo() { cout << "A::foo() is called" << endl;}};class B: public A{public:virtual void foo() { cout << "B::foo() is called" <<endl;}}; 那么,在使用的时候,我们可以:A * a 阅读全文
posted @ 2012-05-29 09:45 kkmm 阅读(215) 评论(0) 推荐(0) 编辑
c语言static与extern的用法
摘要:一,static和extern: 大工程下我们会碰到很多源文件。 文件a.cstatic int i; //只在a文件中用int j; //在工程里用static void init() //只在a文件中用{}void callme() //在工程中用{ static int sum;}上面的全局i变量和init()函数只能用在a.c文件中,全局变量sum的作用域只在callme里。变量j和函数callme()的全局限扩充到整个工程文件。所以可以在下面的b.c中用extern关键字调用。extern告诉编译器这个变量或者函数在其他文件里已经被定义了。文件b.cextern int j; /.. 阅读全文
posted @ 2012-05-17 16:30 kkmm 阅读(234) 评论(0) 推荐(0) 编辑
从std::cout和endl说起
摘要:正文 问题是这样的……相信下面这个程序凡是会写C++程序的同仁都认得,估计学会的第一个C++程序就是它了吧://---------------------------------------------- // 水之真谛 // http://blog.csdn.net/FantasiaX //---------------------------------------------- #include<iostream> int main(int argc, char *argv[]) { std::cout << "Hello, World." & 阅读全文
posted @ 2012-05-09 15:01 kkmm 阅读(1839) 评论(0) 推荐(0) 编辑
尽量不要使用using namespace std;VC++2005使用有感
摘要:今天用了VISUAL C++写了个小程序(VS2005),很简单很简单的,但是就是编译不通过 出现一个奇怪的问题:错误 1 error C2668: “max”: 对重载函数的调用不明确最初代码如下#include <iostream> usingnamespace std; template <typename T> T max (T a,T b) { return ((a>b)?a:b); } void main() { double x,y; cin>>x>>y; cout<<"Max number is &qu 阅读全文
posted @ 2012-05-09 12:37 kkmm 阅读(454) 评论(0) 推荐(0) 编辑
【转】C++的const_cast的问题
摘要:和上一篇文章一样了,还是提起一下大约一年前我来公司面试所遇到的一道题目,题目很简单:C++有多少种cast,它们的名称和功能各是什么。(我之前的文章曾经提到过,但后来我发现自己写得并不够简明)答案如下:一共四种cast。1、static_cast,支持子类指针到父类指针的转换,并根据实际情况调整指针的值,反过来也支持,但会给出编译警告,它作用最类似C风格的“强制转换”,一般来说可认为它是安全的;2、dynamic_cast,支持子类指针到父类指针的转换,并根据实际情况调整指针的值,和static_cast不同,反过来它就不支持了,会导致编译错误,这种转换是最安全的转换;3、reinterpre 阅读全文
posted @ 2012-05-08 14:35 kkmm 阅读(272) 评论(0) 推荐(0) 编辑
vs2005,2008 工程添加引用lib静态库 以及 移植c/c++工程
摘要:今天用到win32 PAI waveOutGetNumDevs要引用winmm.lib,添加方法两种:1.程序中添加代码: #pragma comment(lib,"winmm.lib")2.在解决方案管理器中,对工程单击右键,选择属性->配置属性->链接器->命令行->附加属性,在里面输入库名,点应用就可以了代码:#include<stdio.h> #include<windows.h> //#include <mmsystem.h>#pragma comment(lib,"winmm.lib" 阅读全文
posted @ 2012-05-07 16:14 kkmm 阅读(4840) 评论(0) 推荐(0) 编辑
什么是 DLL?
摘要:什么是 DLL?DLL 是一个包含可由多个程序同时使用的代码和数据的库。例如,在 Windows 操作系统中,Comdlg32 DLL 执行与对话框有关的常见函数。因此,每个程序都可以使用该 DLL 中包含的功能来实现“打开”对话框。这有助于促进代码重用和内存的有效使用。通过使用 DLL,程序可以实现模块化,由相对独立的组件组成。例如,一个计帐程序可以按模块来销售。可以在运行时将各个模块加载到主程序中(如果安装了相应模块)。因为模块是彼此独立的,所以程序的加载速度更快,而且模块只在相应的功能被请求时才加载。此外,可以更为容易地将更新应用于各个模块,而不会影响该程序的其他部分。例如,... 阅读全文
posted @ 2012-05-07 15:45 kkmm 阅读(1461) 评论(0) 推荐(0) 编辑
.dll文件有什么用?
摘要:DLL文件即动态链接库文件,是一种可执行文件,它允许程序共享执行特殊任务所必需的代码和其他资源。Windows提供的DLL文件中包含了允许基于Windows的程序在Windows环境下操作的许多函数和资源。DLL多数情况下是带有DLL扩展名的文件,但也可能是EXE或其他扩展名。它们向运行于Windows操作系统下的程序提供代码、数据或函数。程序可根据DLL文件中的指令打开、启用、查询、禁用和关闭驱动程序。DLL的全称是Dynamic Link Library, 中文叫做“动态链接文件”。在Windows操作系统中, DLL对于程序执行是非常重要的, 因为程序在执行的时候, 必须链接到DLL文件 阅读全文
posted @ 2012-05-07 15:41 kkmm 阅读(847) 评论(1) 推荐(0) 编辑
[转]typedef的四个用途和两个陷阱
摘要:看见一段不错的东东,转过来原帖地址:http://bbs.bc-cn.net/dispbbs.asp?boardID=56&ID=120236&page=1标题:typedef的四个用途和两个陷阱--------------------------------------------用途一: 定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如: char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针 和一个字符变量以下则可行: typedef char* PCHAR; // 一般用大写 PCHAR pa, pb; 阅读全文
posted @ 2012-05-07 15:05 kkmm 阅读(259) 评论(0) 推荐(0) 编辑
C++中int,Uint,uint16等有什么区别以及用处
摘要:在C++中,既然有了int,为什么还要有uint?特别是uint16,uint32等又有什么用?他们有什么区别?---------------------------------------------------------------------------------------------------------------------int是C/C++数据类型,uint,uint16,uint32并不是C/C++内建的类型,而只是一些typedef。可能的定义如下:typedef unsinged int uint;//为了省事啊,这样不用写unsigned int而只需要写ui.. 阅读全文
posted @ 2012-05-07 14:55 kkmm 阅读(21504) 评论(0) 推荐(0) 编辑
【转载】彻底搞定C指针-函数名与函数指针
摘要:本文转载自:http://www.programfan.com/blog/article.asp?id=6030函数名与函数指针一 通常的函数调用 一个通常的函数调用的例子://自行包含头文件void MyFun(int x); //此处的申明也可写成:void MyFun( int );int main(int argc, char* argv[]){ MyFun(10); //这里是调用MyFun(10);函数 return 0;}void MyFun(int x) //这里定义一个MyFun函数{ printf(“%d\n”,x);} 这个MyFun函数是一个无返回值的函数,它并不完成什 阅读全文
posted @ 2012-05-04 09:41 kkmm 阅读(195) 评论(0) 推荐(0) 编辑


点击右上角即可分享
微信分享提示