C++学习总结(一)

一.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与C头文件加以区别

三.命名空间

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<







       

                 

                  

     

   

你可能感兴趣的:(C++,C++学习总结)