初学c++总结(上)

C、+是一门完全兼容C的语言,它可以在C编译器上使用。C++其实和C很相似,在C语言的基础上学习C++,就会发现C++很容易上手。
先说一下C和C++的区别:
1、C++完全兼容C语言
2、支持面向对象的编程思想
3、支持运算符、函数重载
4、支持编译时、运行时多态
5、支持泛型编程(模板)
6、支持异常处理
7、类型检查更严格
C++语言的输入输出是cin和cout,输入输出被封装成流程操作,不需要占位符,可以自动识别数据类型,这两个函数的头文件是iosream;而C语言的输入输出是标准库函数。C++需要在开头设定好命名空间。
例如同样输出hello world,
C程序:

#include<stdio.h>
int main()
{
	printf("hello world");
	return 0;
}

而C++程序是:

#include<iostream>
using namespace std;
int main()
{
	cout<<"hello world"<<endl;
	return 0;
}

因为C++完全兼容C所以在C++中C的头文件都可以继续使用的只是格式改变:
把.h去掉然后在前面加上c即可,即stdio.h变成cstdio。
C++的数据类型和C不同:
bool在C中是用函数模拟出来的,本身不是数据类型,占4个字节,而C++中bool是关键字之一,和char,int这些没区别,占一个字节。
而结构,枚举,联合这些也有区别。C++中都再不将需要typedef、struct、union、enum这些关键字,可以给成员设置访问属性。C++中的结构、枚举、联合都可以加函数。例如:

class test
{
	int a;
	char b;
	publicint c;
		int d(int x)
		{
			return x*x;
		}
}

字符串不同:
C++中把字符串封装成string这个类。而C中只是调用标准库函数来对字符串进行操作。在C中
char a=‘abc’;
char b;
b=a;
这样的操作是不允许的,赋值只能使用strcpy,而C++中是允许这样的操作。
对应操作:
C++ C
= strcpy
+= strcat
== strcmp
.size() strlen
[] 访问单个字符
命名空间namespcae,C++为了完全兼容C防止C中标准库和C++标准库发生命名冲突从而发明的一种解决命名冲突的技术。
使用方法:
1、域限定符
空间名::标识符
2、导入名字空间
using namespace 空间名;
声明和定义可以分开
a.h 声明:
namespace ns{
extern int b;
}
a.cpp 定义:
namespace ns{
int b;
}

int ns::b;
命名空间嵌套:
namespace n1
{
int num;
namespace n2
{
int num;
namespace n3
{
int num;
}
}
}
1、逐层分解
n1::n2::n3::num;
2、逐层导入
using namespace n1::n2::n3;
cout << num << endl;
3、给命名空间取别名
namespace n123 = n1::n2::n3;
堆内存管理:
C++中有专门管理堆内存的语句,而C中没有。
new:分配内存;等价于C中的malloc;
delete:释放内存;等价于free;
使用方法:*p=new int;分配int类型内存;返回值是起始地址。delete p;相当于free(p);

*p=new int[10],相当于malloc(sizeof(int)*10)
delete[10]p 连续释放10块内存。
new分配内存失败时会发生错误。
delete连续释放同一块内存时也会产生错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值