C C++ C#
文章平均质量分 53
leeeyupeng
驰骋沙场,万马行空。
展开
-
运行时类型识别 d y n a m i c_ c a s t
<br /> <br />#include<iostream>using namespace std;class Class1 {public: virtual void print(){cout<<"父类的prin函数t"<<endl;}};class Class2{public : virtual void print2(){cout<<"父类2的print函数"<<endl;}};class Class3:public Class1,public Cla原创 2010-11-30 08:57:00 · 1220 阅读 · 1 评论 -
析构函数 继承中析构父类...
#includeusing namespace std;class base{public: base(int k){a = k;}; ~base() { cout原创 2011-03-31 21:17:00 · 590 阅读 · 0 评论 -
无法从“int *”转换为“int []”
#includeusing namespace std;int main(){ int Array[100]; int *p; p = new int[100]; for(int i = 0;i < 100;i ++) { Array[i] = 100 - i; p[i] = i + 1; } //Array = p; //“=”: 无法从“in原创 2011-06-22 09:51:00 · 7537 阅读 · 0 评论 -
const 小知识
#includeusing namespace std;int main(){ int a = 100; const int b = 1000; const int *p; int *pp = &a; p = &a; cout<<*p<<endl; //*p = 101; a = 101; cout<<*p<<endl; //pp = &b;//转载 2011-06-22 15:06:00 · 489 阅读 · 0 评论 -
WinMain函数参数
http://blogold.chinaunix.net/u/27166/showart_400373.html WinMain函数的定义WinMain函数的原型声明如下:int WINAPI WinMain( HINSTANCE hInstance, // handle to current instance HINSTANCE hPre转载 2011-06-28 15:07:00 · 699 阅读 · 0 评论 -
static
#includeusing namespace std;class A;A* a1 = NULL;struct C{ int C1; int C2;};class A{public: A() { a = 1; cc.C1 =原创 2011-07-06 15:52:29 · 489 阅读 · 0 评论 -
继承多态
#includeusing namespace std;class A1{public: A1(){ a = 0;}; virtual void print(){cout<<"A1"<<endl;};protected: int a;private:};原创 2011-07-19 15:09:20 · 356 阅读 · 0 评论 -
函数指针
#include#include#includeusing namespace std;int a(){ cout<<"fuck A"<<endl; return 0;}int b(){ cout<<"fuck B"<<endl; return 0;}原创 2011-08-08 17:22:50 · 352 阅读 · 0 评论 -
函数参数个数不定,... printf()是个好例子
#includeusing namespace std;int sum(int first,int second,...){ int num = 0; int* a; a = &first; while(*a != 0) { num += *a; a ++原创 2011-08-08 17:50:53 · 378 阅读 · 0 评论 -
位运算
#includeusing namespace std;int Min(int a,int b){ int sign = ((unsigned int)(a - b)) >>(sizeof(int) * 8 - 1); return a * sign + b * (1原创 2011-08-17 16:59:14 · 457 阅读 · 0 评论 -
C++引用 && 指针
4.指针和引用有什么分别;如果传引用比传指针安全,为什么?如果我使用常量指针难道不行吗? (1) 引用在创建的同时必须初始化,即引用到一个有效的对象;而指针在定义的时候不必初始化,可以在定义后面的任何地方重新赋值. (2) 不存在NULL引用,引用必须与合法的存储单元关联;而指针则可以是NULL. (3) 引用一旦被初始化为指向一个对象,它就不转载 2011-11-25 09:46:51 · 6893 阅读 · 1 评论 -
Array && ArrayList C#
using System;using System.Collections.Generic;using System.Collections;public class A{ static int Count = 0; int curNum; public A() { curNum = ++ Count; } public v原创 2012-03-13 16:34:43 · 649 阅读 · 0 评论 -
观察者模式
using System;using System.Collections;using System.Collections.Generic;namespace Observer{ public interface IObserver { void Update(Object obj); } public interface IObserv原创 2012-08-02 14:22:08 · 476 阅读 · 0 评论 -
C# Class Struct =
//class 是引用类型,structs是值类型//struct = 直接拷贝一份数据//class = 传递引用 using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{ struct Vector3原创 2012-07-26 15:43:27 · 543 阅读 · 0 评论 -
C# class Struct
先说区别,原文出处 http://www.dotnetspider.com/resources/740-Difference-between-class-struct-C.aspx1,class 是引用类型,structs是值类型既然class是引用类型,class可以设为null。但是我们不能将struct设为null,因为它是值类型。 struct AStruct转载 2012-07-26 15:57:10 · 499 阅读 · 0 评论 -
c#调用DLL
// http://www.cnblogs.com/my-blog/archive/2008/11/14/1333454.html Win32"上一错误",如:SetLastError=true;ExactSpelling 指示 EntryPoint 是否必须与指示的入口点的拼写完全匹配,如:ExactSpelling=false;PreserveSig指示方法的转载 2012-09-29 14:52:27 · 995 阅读 · 0 评论 -
状态机
<br />Finite State Machine:<br /> 有限状态机(FSM)或有限状态自动机或简称状态机,是表示有限个状态以及在这些状态之<br /> 间的转移和动作等行为的数学模型.<br /> 简单说明一下,可以这样理解,系统的行为如果在不同的时间(环境)下,其工作不同,并<br /> 且行为可以分成所谓的有限的状态以及不重叠的程序块时,系统显现出了状态行为。<br /> 这其实说明了两件事情,如果是状态机(这篇文章说说的状态机是FSM的简称),肯定体现<br /> 了两点:首先原创 2011-02-22 16:09:00 · 638 阅读 · 0 评论 -
回调函数 Callback Function
回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。 (1)定义一个回调函数; (2)提供函数实现的一方在初始化的时候,将回调函数的函数指针注册给调用者; (3)当特定的事件或条件发生的时候,调用者使用函数指针调用回调函数对事件进行处理。原创 2011-02-16 20:49:00 · 539 阅读 · 0 评论 -
sizeof 数组
<br /> #include <iostream> using namespace std; void theFun(char a[]) { cout<< "2: " <<sizeof(a) <<endl; } int main() { char a[100]=" "; cout<< "1: "<<sizeof(a) <<endl; theFun(a); cout<< "3: "<<sizeof(a[100]) <<endl; return 0;原创 2011-02-12 18:06:00 · 498 阅读 · 0 评论 -
C++ 文件类型分析
<br />.APS:存放二进制资源的中间文件,VC把当前资源文件转换成二进制格式,并存放在APS文件中,以加快资源装载速度。资源辅助文件。 <br /><br />.BMP:位图资源文件。 <br /><br />.BSC:浏览信息文件,由浏览信息维护工具(BSCMAKE)从原始浏览信息文件(.SBR)中生成,BSC文件可以用来在源代码编辑窗口中进行快速定位。用于浏览项目信息的,如果用source brower的话就必须有这个文件。可以在project options里去掉Generate B原创 2010-12-24 10:18:00 · 514 阅读 · 0 评论 -
DLL
<br /><br />动态链接库 (DLL) 是作为共享函数库的可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个 DLL 中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL 还有助于共享数据和资源。多个应用程序可同时访问内存中单个 DLL 副本的内容。<br />动态链接与静态链接的不同之处在于:动态链接允许可执行模块(.dll 文件或 .exe 文件)仅包含在运行时定位 DLL 函数的可执行代码所需的信息。在静态链接中原创 2010-12-24 10:15:00 · 360 阅读 · 0 评论 -
C++ 文件类型分析
<br />.APS:存放二进制资源的中间文件,VC把当前资源文件转换成二进制格式,并存放在APS文件中,以加快资源装载速度。资源辅助文件。 <br /><br />.BMP:位图资源文件。 <br /><br />.BSC:浏览信息文件,由浏览信息维护工具(BSCMAKE)从原始浏览信息文件(.SBR)中生成,BSC文件可以用来在源代码编辑窗口中进行快速定位。用于浏览项目信息的,如果用source brower的话就必须有这个文件。可以在project options里去掉Generate B原创 2010-12-24 10:18:00 · 1457 阅读 · 0 评论 -
C++ class 学习
1.对象的数据成员不共享,但是数据函数共享一份。2.对象或对象引用使用成员选择符.来访问对象成员。而对象指针使用指针选择符—>来访问对象成员。3.inline内联函数可以定义在类声明中(类声明中定义函数默认是内联的),也可以在声明体外中加inline关键字声明为内联函数,内联函数的意义是,在编译的时候调用此函数的地方直接用实现代码替代。这样可以省去函数调用的开销,但是多出调用此函数又会使得代码冗余。4.class &&struct区别:类默认成员是private,而struct默认为public。class原创 2010-11-09 19:31:00 · 471 阅读 · 0 评论 -
static仅仅初始化一次
#includeusing namespace std;void f(){static int key=100;//key++;cout原创 2011-01-07 13:45:00 · 752 阅读 · 0 评论 -
函数指针 typedef
#includeusing namespace std;typedef int (*ptr)(int a,int b);int add(int c,int d){ return c+d;}int main(){ ptr p=add; int (*pp)(int a,int b); pp=add; cout原创 2011-01-07 16:32:00 · 558 阅读 · 0 评论 -
C内存分配
<br />欢迎进入内存这片雷区。伟大的Bill Gates 曾经失言:<br /> 640K ought to be enough for everybody.<br /> — Bill Gates 1981<br /> 程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本章的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓转载 2010-11-20 10:28:00 · 338 阅读 · 0 评论 -
void * 回调函数
#includeusing namespace std;int main(){ void* p; int i; cin>>i; p = (void*)(&i); cout#includeusing namespace std;typedef void (*ptr)(void* p);//(*ptr)必须加括号void three_Time(ptr f,void* pp){ f(pp); f(pp); f(pp);}void print原创 2011-01-10 21:54:00 · 1297 阅读 · 0 评论 -
宏 # ## C++
<br />#include<iostream>#include<string>using namespace std;#define STRING(X) #Xint main(){ string str = STRING(Hello World !); cout<<str<<endl; cout<<&STRING(Hello World !)<<endl; string pstr; cout<<&pstr<<endl; pstr=STRING(Hello Wor原创 2011-01-13 11:45:00 · 468 阅读 · 0 评论 -
明晰C++内存分配的五种方法的区别
<br />在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 <br /><br /> 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 <br /><br /> 堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。 <br /><br /> 自由存储区,就转载 2010-11-20 10:39:00 · 362 阅读 · 0 评论 -
C指针 作用域
#include int main() { int i=10; int *j=&i; if(!0) { int l=20; int *k=&l; j=k; } printf("%d/n",*j); return 0;}结果是20;#includeint *j;void f(){ int l=20; int *k=&l; j=k;}int main() { int i=10; j=&i; f(转载 2010-11-20 17:10:00 · 689 阅读 · 0 评论 -
C++编译器的函数编译流程
<br />C++中的类型查找过程相对简单,基本上就是名字查找,这里不再介绍。<br /> 对于 .cpp 文件中调用的一个函数 ( 或成员函数 ), 编译器主要做了下面三件事情 :<br /> 1 名字查找 . 先在所在编译单元中可见名字实体中进行名字查找 .(1) 类成员函数优先 ( 对象所在的类 -> 基类 ). 一经找到就停止查找 . (2 )如果没有 ,在相应的名字空间中做进一步的搜索 ; (3)如果还没有 , 会根据函数参数所在的名字空间中查找 (keoning 查找 ).<br转载 2010-11-20 21:20:00 · 395 阅读 · 0 评论 -
浅拷贝与深拷贝
<br />浅拷贝与深拷贝<br />对象的构造,也可以由拷贝构造函数完成,即用一个对象的内容去初始化另一个对象的内容。<br />此时,若对象使用了堆空间(注意和“堆对象”区分),就有深、浅拷贝的问题,不清楚则很容易出错。<br />1、什么是浅拷贝?<br />2、浅拷贝可能带来什么问题?<br />3、什么是深拷贝?<br />4、深拷贝的实现方法?<br />什么是浅拷贝<br />缺省拷贝构造函数:用一个对象的内容初始化另一个同类对象,也称为缺省的按成员拷贝,不是对整个类对象的按位拷贝。这转载 2010-11-20 14:44:00 · 339 阅读 · 0 评论 -
指针参数是如何传递内存的?
#include#include#includevoid GetMemory(char * &p, int num){p = (char *)malloc(sizeof(char) * num);}void main(void){char *str = NULL;GetMemory(str, 10);// str 仍然为 NULLif(str==NULL)printf("依然为空");else printf("%d",strlen(str));print转载 2010-11-22 09:35:00 · 432 阅读 · 0 评论 -
有了malloc/free为什么还要new/delete?
<br /> malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。 对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free。 因此C++语言需要一个能完成动态内存分配和初始化工作的运算符new,转载 2010-11-22 09:44:00 · 420 阅读 · 0 评论 -
virtual C++ 多态
#includeusing namespace std;class Class1{public : int no; virtual void print(){cout=0) { cin>>n; if(n%2==0)p=new Class2(); else p=new Class3(); p->print(); } return 1;}原创 2010-11-22 09:59:00 · 398 阅读 · 0 评论 -
C# 生成dll 导入unity中使用
csc /target:library /out:MathLibrary.DLL Add.cs Mult.cs(//引自http://msdn.microsoft.com/zh-cn/library/3707x96z(v=vs.80).aspx)使用此命令生成dll csc命令需要添加到环境变量中(//引自 http://blog.csdn.net/rambo_china/article/de原创 2013-05-15 13:54:00 · 2167 阅读 · 0 评论