C++入门基本知识

1.命名空间

2.C++基本的输入输出流

3.重载(C++为什么支持重载?)

4.C++缺省参数

5.指针和引用(概念、使用方法、做参数、做返回值的作用,指针和引用的区别)


1.命名空间 namespace

C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。

使用C++ 标准程序库的任何标识符时,可以有三种选择:
1>直接指定 标识符。 输出为std::cout <<  a << std::endl;
2> 使用using 关键字 。 using std::cout; using std::endl; using std::cin; 以上程序可以写成 cout << a << 3.4 << endl;
3>最方便的就是使用 using namespace std; 例如: using namespace std;这样命名空间std内定义的所有 标识符都有效(曝光)。就好像它们被声明为 全局变量一样。那么以上 语句可以如下写: cout <<a<< endl;
1>
#include <iostream>
int a = 10;
int main()
{
	std::cunt<<a<<std::endl;
	return 0;
}
2>
#include <iostream>
using std::cout;
using std::endl;
using std::cin;
int a = 10;
int main()
{
	cout<<a<<endl;
	return 0;
}

3> using namespace std
#include <iostream>
using namespace std;
int a = 10;
int main()
{
	cout<<a<<endl;
	return 0;
}

4>命名空间namespace,可以避免导致全局命名冲突问题.
#include <iostream>
using namespace std;
namespace A1//命名空间A1
{
	int a = 20;
	int b = 10;
}
int a = 10;//全局变量
int main()
{
	cout<<A1::a <<endl;//输出命名空间A1中a的值
	cout<<::a <<endl;//输出全局变量a的值
	cout<<a<<endl;//就近输出a的值  即全局变量a
	return 0;
}
运行结果:

5>定义全局变量时可以用命名空间 即using namespace 命名空间名(相当于将命名空间的变量在全局变量中拷贝了一份)
#include <iostream>
using namespace std;
namespace A1
{
	int a = 10;
}
using namespace A1;
int main()
{
	cout<<::a <<endl;//即输出全局变量中a的值
	return 0;
}

6>结构体名字相同,用命名空间定义,则可以避免重复定义
namespace A1
{
   struct ListNode
   {
    };
}
struct ListNode
{
 };

7>嵌套
namespace A1
{
	int a = 10;
	namespace A2
	{
		int a = 20;
	}
}

2.C++基本的输入输出流
1>输入cin>>a
#include <iostream>
using namespace std;
int main()
{
	int a = 10;
	cin>>a;//相当于C语言中的scanf("%d",&a);这的a直接被引用,不用取地址
	cout<<a<<endl;
	return 0;
}
2>输出:cout<<a<<endl;
C++支持连续输入输出 eg:cout<<a<<b<<c<<endl;

int main()
{
   int a = 10;
   double b = 2.22;
   cout<<"C++type:"<<"int-> "<<a<<"double-> "<<b<<endl;
   return 0;
}
运行结果:


3.重载(C++为什么支持重载?)

函数重载就是指:在同一作用域类,一组函数的函数名相同,参数列表不同(个数不同或类型不同或参数顺序不同),返回值可同可不同。

C语言:变量定义必须在域的开始,且不能出现两个相同的函数名。

C++:变量定义可以在任意位置,且可以有两个相同的函数名。(函数重载

为什么c语言不支持重载而c++支持重载?
主要原因是c和c++的编译器在对函数进行重命名的时候用的方法不一样,比如同一个函数 int ADD(int a,int b)
C编译器处理后 将这个函数重新命名为 _ADD
C++编译器处理后,将这个函数重新命名为 _ADD_int_int    
所以说函数重载的本质是:参数列表不同:1参数的类型不同 2参数个数不同3参数的顺序不同。  这三点引起的编译器修饰函数名的不同

4.C++缺省参数

对于C++的缺省参数的使用我们应该注意以下几点: 
    1>缺省参数不能出现在函数指针、函数引用以及typedef中  
    2>缺省参数可以在不同的声明中逐步给出  
    3>不同作用域的声明中定义的缺省参数是独立的,互不影响;  
    4>同一作用域的声明中不能重复定义同一个参数的缺省值。 

5.指针和引用(概念、使用方法、做参数、做返回值的作用,指针和引用的区别)

      指针 : 指向一块内存,它的内容是所指内存的地址;
int a = 10;
int *p = &a;
       引用 :是某块内存的别名.
int a = 10;
int & b = a;
int &c = b;//b,c都是a的别名   


 区别:

    1. 指针是一个实体,而引用仅是个别名;

    2. 引用使用时无需解引用(*),指针需要解引用;

    3. 引用只能在定义时被初始化一次,之后不可变;指针可变;

    4. 引用没有 const,指针有 const,const 的指针不可变;

    5. 引用不能为空,指针可以为空.

  
     






  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值