您的位置:首页 > 编程语言 > C语言/C++

thinking in c++ 读书笔记:c与c++之区别

2007-01-12 12:47 627 查看
首先看一下struct在c与c++中的一个典型例子:首先是c中的:
typedef struct STASHtag{
int size;
.....
unsigned char * storage;
}stash;

再来c++中的同一个例子.
struct stash{
int size;
.......
unsigned char * storage;
///founctions
void initialize (int size);
.......
};
通过上面的对比,可以很看出下面一些区别:
1.c++中不需要使用typedef,在c++中,定义的struct直接被认为是一个可以定义变量的类型,而c中则不行.c中需要用typedef显式的定义一个类型.
2.c++中的struct可以有成员函数.c中不可以.
另外
3.c++中对类型的检查更严格,形如char*str=malloc (30);的语句可以在c中编译通过,但是在c++中则不可以.需要强制类型装换:
char*str =(char*)malloc(30);
在c++中,C + +允许将任何类型的指针赋给v o i d *(这是void* 的最初的意图,它要求void* 足够大,以存放任何类型的指针),但不允许将void* 指针赋给任何其他类型的指针。一项基本的要求是告诉读者和编译器,我们知道正在用的类型。这样,我们可以看到calloc( ) 和realloc( ) 的返回值严格地指派为(unsigned char*)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: