一.C++的特点
1>强类型
(C语言的类型检查弱)注重类型,严格检查类型匹配
例如: C: int *p1; C++: int *p1;
double *p2; double *p2;
p1=p2;//自动完成类型转换 p1=p2;//Error不可以进行直接赋值,
2>支持面向对象编程(oop):封装,继承,多态
3>泛型编程(GP):异常, 模板(函数模板,类模板),标准模板库
二.C++的数据类型定义与输出
1>
int a(5);
cout<
//注:cout泛型编程,可接受不同的类型
2>命名空间,解决重定义的问题,解决变量,类,函数的重定义问题。
3>头文件#include
三.命名空间
1>解决重定义
2>可以嵌套,进行迭代式开发。
3>可以不加空间名称直接引用。
4>可以定义别名,namespace r=run;
5>命名空间可以拓展,增加变量,类,函数,命名空间等,
6>用函数指针作为接口,提高兼容性。
7>命名空间中全部内容都是公有的是透明的,而结构体默认是公有的透明的,可以定义为私有。
8>作用域为从using namespace开始下面的代码直到结束,且必须在命名空间的后方,如果变量重名,会出现不明确错误,要加上作用域。命名空间在块语句内部,作用域为从块语句开始到结束。
9>C语言中出现重名,全局变量与局部变量重名,无法引用全局变量,C++可以通过域运算符引用全局变量。
#include"iostream"
#include
int add(int a, int b);
namespace myspace
{
int a(10);
int(*p)(int, int)=add;
}
int add(int a, int b)
{
return a + b;
}
namespace
{
int b(8);
}
namespace runrunrun
{
int c(6);
}
struct my
{
int e=8;
private:
int d=10;// 私有不能访问
};
namespace r = runrunrun;
int a(5);
void main()
{
int a(1);
std::cout << ::a;
std::cout << a<
#include
int a=5;
void main()
{
int a=3;
printf("%d",a);
}
C++:
#include
int a=5;
void main()
{
int a=3;
std::cout<<::a;//引用全局变量
}
#include
namespace space
{
template using ptr = T*;
}
int add(int a, int b)
{
return a + b;
}
typedef int(*ADD)(int a, int b);
using FUNC = int(*)(int a, int b);
void main()
{
//int (*p)(int, int) = add;
ADD p=add;
std::cout< pint = (new int(3));
std::cout << *pint<< std::endl;
std::cin.get();
}
C与C++头文件的区别是有没有命名空间。
四.auto变量作用
1>自动变量,根据右值,自动区别匹配数据类型,
(int double char)
num[10]={0};
for(auto data:num)
//自动取出num中的值
{
std::cout<}
2>自动循环,循环一维数组常量
//num[i][j];
for(auto data:num)
{
std::cout<