
C/C++
vsooda
这个作者很懒,什么都没留下…
展开
-
C语言中字符串的处理方式
C语言中字符串的处理方式“很难从字符串中找到感觉,但它们却是我们能指望的唯一交流纽带” --《C语言程序设计 现代方法》 写多了 Java 代码,对 String 类 很是喜爱,可惜经典的 C 语言没有。。。最近在做程序过程中,发现对C语言字符串的处理很模糊,一会儿用数组,一会儿用指针转载 2012-02-13 23:49:56 · 855 阅读 · 0 评论 -
error c2243:"类型转换" 转换存在,但无法访问
今天在程序的中有一段class Quackable : QuackObservable,结果一直出现error c2243:"类型转换" 转换存在,但无法访问。后来发现只要改成class Quackable : public QuackObservable 即可。c++默认的是private继承,无法进行转换,检查一下是否继承后面都有一个public原创 2012-08-16 20:20:02 · 10927 阅读 · 3 评论 -
HDU 1308 日历打印加强版,没有勇气自己做,下次再来。
代码中对输入输出的操作符重载要学习。这个题目的主要问题是干扰信息太多了。1. 按照英美的日历的标准就是1752年之后算闰年的方法才改变的。2. 要知道某一天是星期几,必须知道 1.1.1 是星期几#include #include using namespace std;const string MonthName[]={"January", "February", "M转载 2012-09-15 18:52:12 · 1006 阅读 · 0 评论 -
__cdecl __fastcall与 __stdcall
调用约定: __cdecl __fastcall与 __stdcall,三者都是调用约定(Calling convention),它决定以下内容:1)函数参数的压栈顺序,2)由调用者还是被调用者把参数弹出栈,3)以及产生函数修饰名的方法。 1、__stdcall调用约定:函数的参数自右向左通过栈传递,被调用的函数在返回前清理传送参数的内存栈, 2、_cdecl是C和C++程序的转载 2012-12-28 14:55:35 · 585 阅读 · 2 评论 -
c++ 内存管理 完整版
转自:http://blog.youkuaiyun.com/zhanghefu/article/details/5003407[导语]内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关转载 2013-02-18 21:05:39 · 1637 阅读 · 0 评论 -
C++拷贝构造函数(深拷贝,浅拷贝)
对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。 #include iostream>using namespace std;class CExample {private: int a;pub转载 2013-03-09 16:16:57 · 585 阅读 · 0 评论 -
c++ 要点 学习阶段性总结
刚开始要学习的c++的时候看了一下primer。写了一些代码。有的东西似是而非的。最近一个月又看了一些相关书籍。1. Inside c++ Object Model 已经写了一篇笔记。在后面看书的过程中,发现书中该书中讨论的很多东西还是很有用的。站在编译器的角度来理解c++的一些规则。对于trival ctor等,bitwise copy 都有涉及。这在每本书书讲到深入的时候都是要涉及原创 2013-03-11 22:00:56 · 1690 阅读 · 0 评论 -
c++ 初始化列表
何谓初始化列表与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。在C++中,struct和class的唯一区别是默认的克访问性不同,而这里我们不考虑访问性的问题,所以下面的代码都以struct来演示。struct foo{ string name ; int id ; foo(转载 2013-02-28 16:35:30 · 570 阅读 · 0 评论 -
【good】用枚举定义有意义的数组下标
转自:http://blog.youkuaiyun.com/starlee/article/details/1774117 简单易懂在开发中,经常会用到一些数组,它里面存放一定数量(已知,不是太多)的特定元素。在使用数字表示的数组下标访问数组中元素的时候,根本不知道该元素是否是需要的那个元素,而且使代码可读性降低,甚至还会出现下标越界的危险。 比如,现在有如下的继承体系:class转载 2013-05-08 15:59:32 · 694 阅读 · 0 评论 -
函数的调用规则(__cdecl,__stdcall,__fastcall,__pascal)
转自:http://blog.youkuaiyun.com/jia_xiaoxin/article/details/2868216关于函数的调用规则(调用约定),大多数时候是不需要了解的,但是如果需要跨语言的编程,比如VC写的dll要delphi调用,则需要了解。 microsoft的vc默认的是__cdecl方式,而windows API则是__stdcall,如果用vc开转载 2013-07-06 13:50:44 · 761 阅读 · 0 评论 -
c++与java的主要区别
main functionC++// free-floating functionint main( int argc, char* argv[]){ printf( "Hello, world" );}Java// every function must be part of a class; the main function for a particular原创 2012-08-16 11:27:31 · 958 阅读 · 0 评论 -
c++二维数组初始化简单版本
#include using namespace std;int main(){ int N, M; while(cin>>N>>M, N) { int** pp = new int*[N]; for(int i = 0; i < N; i++) pp[i] = new int[M]; for(int i = 0; i < N; i++) for(int j原创 2012-08-19 19:51:27 · 1496 阅读 · 0 评论 -
boost源码剖析之:Tuple Types(rev#2)
boost源码剖析之:Tuple Types(rev#2)刘未鹏(pongba)C++的罗浮宫(http://blog.youkuaiyun.com/pongba)Note: 并非新作,04年曾放在blog上,后来删掉了,不过网上到处有转载。这是修改之后的版本。动机[1]假设你有这样一个函数:它接受两个整型数据并返回它们整除的结果,像这样:int DevideInt转载 2012-03-24 13:27:55 · 632 阅读 · 0 评论 -
函数指针
程序运行期间,每个函数的函数体都会占用一段连续的内存空间。而函数名就是该函数体所占内存区域的起始地址(入口地址)。我们可以将函数体的入口地址赋给一个指针变量,使该指针变量指向该函数,然后通过指针变量就可以调用这个函数。这种指向函数的指针变量称为函数指针。函数指针定义的一般形式为:类型名(*指针变量名)(参数类型1,参数类型2,。。。);可以用一个原型匹配的函数名字给一个函数指针赋值。要原创 2012-03-28 19:50:04 · 644 阅读 · 0 评论 -
VC 回调函数及使用方法
回调函数说白了就是事件响应程序,Windows的每个消息可以理解为一个事件,事件的响应代码要由用户自己来定义。用户定义了事件响应的代码,但还要Windows知道这段代码的位置(要不然Windows就不知道如何去调用,这也没有用),于是用户需要将回调函数的指针告诉Windows,最典型的例子是在窗口类的结构(WNDCLASS)中给lpfnWndProc分量赋回调函数指针值。 回调函数的参数转载 2012-04-07 18:59:57 · 2855 阅读 · 0 评论 -
c++几个大牛博客。不能迷失于细节!
http://blog.youkuaiyun.com/pongba/article/details/1611593(暗时间作者)http://blog.youkuaiyun.com/g9yuayon/article/category/16775?viewmode=contentshttp://blog.youkuaiyun.com/myan/article/category/333884?viewmode=content原创 2012-03-24 14:02:43 · 3189 阅读 · 0 评论 -
c++中string类怎么用scanf读取
#include #include using namespace std;int main(){ string a; a.resize(100); //需要预先分配空间 scanf("%s", &a[0]); puts(a.c_str()); return 0;}原创 2012-04-19 18:42:21 · 20481 阅读 · 0 评论 -
从opencv中学c++
模板类经常以_结束,这样做的好处如下例所示:类Point3_typedef Point3_ Point3i;typedef Point3_ Point3f;typedef Point3_ Point3d;原创 2012-05-09 21:36:47 · 767 阅读 · 0 评论 -
关于typedef的用法总结
不管实在C还是C++代码中,typedef这个词都不少见,当然出现频率较高的还是在C代码中。typedef与#define有些相似,但更多的是不同,特别是在一些复杂的用法上,就完全不同了,看了网上一些C/C++的学习者的博客,其中有一篇关于typedef的总结还是很不错,由于总结的很好,我就不加修改的引用过来了,以下是引用的内容(红色部分是我自己写的内容)。用途一:定义一种类型的别名,而不原创 2012-05-10 21:07:25 · 536 阅读 · 1 评论 -
c/c++面试题
1. C中static有什么作用?(1)隐藏。 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性,故使用static在不同的文件中定义同名函数和同名变量,而不必担心命名冲突。(2)static的第二个作用是保持变量内容的持久。存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。共有两种变量存储在静态存储区:全局变量和static变转载 2012-05-31 23:36:11 · 677 阅读 · 0 评论 -
蚁群算法求解0/1背包,注意学习二维动态数组的初始化方法
#include#include#include #include#includetypedef struct{ int weight; int value;}item;double Random(){ return (double)rand()/RAND_MAX;}int Randomi(int i,int j){ return i+rand()%(j-i+1);原创 2012-07-12 10:10:19 · 2851 阅读 · 3 评论 -
C/C++内存管理详解
伟大的Bill Gates 曾经失言: 640K ought to be enough for everybody — Bill Gates 1981 程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本文的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。 1、内存分配方式转载 2012-12-22 19:49:16 · 821 阅读 · 0 评论