自学C++学习笔记(每天更新你学习中没有注意到的小重点)

前言:什么是C++

C++是基于C语言而产生的,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行面向对象的程序设计。
C++

第一章:C++入门

1. 命名空间

为了更好的避免在工作之中分模块工作发生函数和变量的命名冲突,我们引入了命名空间的概念,一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间之中,不会和其他变量或函数造成同名冲突。

  1. 命名空间的定义:定义命名空间,需要使用到namespace关键字,在后面跟上命名空间的名字,然后接一对{ },在大括号之中的内容即为命名空间的成员。
//1. 普通的命名空间
namespace N1 // N1为命名空间的名称
{
// 命名空间中的内容,既可以定义变量,也可以定义函数
	int a;
	int Add(int left, int right)
	{
		return left + right;
	}
}


//2. 命名空间可以嵌套
namespace N2
{
	int a;
	int b;
	int Add(int left, int right)
	{
		return left + right;
	}
	namespace N3
	{
		int c;
		int d;
		int Sub(int left, int right)
		{
			return left - right;
		}
	}
}

//3. 同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中。
// 相同的命名空间之中不能够重复定义变量和函数
namespace N1
{
	int Mul(int left, int right)
	{
		return left * right;
	}
}

  1. 命名空间的使用方式
  • 命名空间+ :: + 成员也是比较推荐的一种方式N1 ::Mul(left,right)
  • 引入成员 using + 命名空间 + ::+ 成员 后面使用成员时,不需要加作用域,这样也将会直接导致成员暴露在全局域之中,(如果全局域中有同名的成员,将会导致成员冲突using N2::a
  • 展开命名空间 using + 命名空间 命名空间中所有成员暴露在全局域中,和第二种方式一样,需要注意的同上!using namespace N1

2. C++输入&输出

  1. 在编写C++程序需要进行输入输出时:需要包含的头文件
#include <iostream>
using namespace std;
  1. 输入输出的标准格式
    输入:cin>>b>>a
    输出:cout<<a<<b<<endl (endl换行符)
  • 不需要显示指定输入输出变量的格式,比如整形,字符的%d %c。
  • 支持连续的输入输出
  1. 字符串和非字符串输出
int a = 10 ;
char* p = "1234";
int* pa = &a;
std::cout << pa << std::endl; //非字符串指针输出地址
std::cout << p << std::endl;  //字符串指针输出内容

3. 缺省参数

  1. 缺省参数是声明或定义函数时为函数的参数指定的一个默认值。在调用该函数时,如果没有指定实参则采用该默认值,否则使用指定的实参。
void TestFunc(int a = 0)
{
	cout<<a<<endl;
}
int main()
{
	TestFunc(); // 没有传参时,使用参数的默认值
	TestFunc(10); // 传参时,使用指定的实参
}

  1. 缺省参数分类
    全缺省参数
void TestFunc(int a = 10, int b = 20, int c = 30)
{
cout<<"a = "<<a<<endl;
cout<<"b = "<<b<<endl;
cout<<"c = "<<c<<endl;
}

半缺省参数

void TestFunc(int a, int b = 10, int c = 20)
{
cout<<"a = "<<a<<endl;
cout<<"b = "<<b<<endl;
cout<<"c = "<<c<<endl;
}
  • 半缺省参数必须从右往左依次来给出,不能间隔的给
  • 缺省参数不能在函数声明和定义之中同时出现。
  • 缺省值必须时常量或者是全局变量
  • C语言不支持
//a.h
void TestFunc(int a = 10);
// a.c
void TestFunc(int a = 20)
{

}
// 注意:如果声明与定义位置同时出现,恰巧两个位置提供的值不同,那编译器就无法确定到底该用那个缺省值。

4. 函数重载

在这里插入图片描述

5. 引用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章