C++学习笔记(1)C++入门
目录
前言
从今天开始记录自己学习C++的过程,并分享给大家,共同进步。注:从0开始一、命名空间使用
一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中。给出如下命名空间:
using namespace std;
namespace N {
int a = 10;
int b = 20;
int Add(int left, int right)
{
return left + right;
}
int Sub(int left, int right)
{
return left - right;
}
}
int main()
{
printf("%d\n", a); // 该语句编译出错,无法识别a
return 0;
}
此时,需正确使用命名空间,三种方法如下:
- 加命名空间名称及作用域限定符
int main()
{
printf("%d\n", N::a);
return 0;
}
- 使用using将命名空间中成员引入
using N::b;
int main()
{
printf("%d\n", N::a);
printf("%d\n", b);
return 0;
}
- 使用using namespace 命名空间名称引入
using namespce N;
int main()
{
printf("%d\n", N::a);
printf("%d\n", b);
Add(10, 20);
return 0;
}
二、C++输入&输出
新生婴儿会以自己独特的方式向这个崭新的世界打招呼,C++刚出来后,也算是一个新事物,那C++是否也应该向这个美好的世界来声问候呢?我们来看下C++是如何来实现问候的。
1.输出hello world
代码如下:
#include<iostream>
using namespace std;
int main()
{
cout<<"Hello world!!!"<<endl;
return 0;
}
说明:
1.使用cout标准输出(控制台)和cin标准输入(键盘)时,必须包含< iostream >头文件以及std标准命名空间。推荐使用+std的方式。
2.使用C++输入输出更方便,不需增加数据格式控制,如:整形–%d,字符–%c
2.输出数据
代码如下:
#include<iostream>
//using namespace std;//c++库所有东西都是放在std命名空间中
int main()
{
//自动识别类型
//std::cout << "hello world\n"<<std::endl;
int i = 1;
double d = 1.11;
std::cout << "i = " << i << std::endl;
std::cout << "d = " << d << std::endl;
return 0;
}
结果:
3.输入输出数据
与赋值无关,通过cin从键盘输入值,通过cout输出,代码如下:
#include<iostream>
//常用的库里面一些对象或者类型可以展出来
//工程项目中通常比较推荐
using std::cout;
using std::endl;
int main()
{
int i = 1;
double d = 1.11;
std::cin >> i >> d;
std::cout << "i = " << i << std::endl;
std::cout << "d = " << d << std::endl;
return 0;
}
测试时输入5,3.111,输出结果如下:
扫描二维码关注公众号,回复:
13139085 查看本文章

三、缺省参数
1.缺省参数概念
缺省参数是声明或定义函数时为函数的参数指定一个默认值。在调用该函数时,如果没有指定实参则采用该默认值,否则使用指定的实参。
用法如下:
void TestFunc(int a = 0) {
cout<<a<<endl; }
int main()
{
TestFunc(); // 没有传参时,使用参数的默认值
TestFunc(10); // 传参时,使用指定的实参
}
2.缺省参数分类
- 全缺省参数
#include<iostream>
using namespace std;
void Func(int a = 10,int b = 10,int c = 30)
{
cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << "c = " << c << endl;
}
- 半缺省参数
void Func2(int a, int b, int c=20)
{
cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << "c = " << c << endl;
}
测试代码如下:
int main()
{
//传参必须从右往左依次传参,不能间隔
Func();
Func(1);
Func(1,2);
Func(1,2,3);
//Func2(1);函数不接受一个参数,半缺省b也要赋值
Func(1, 2);
Func2(1, 2, 3);
return 0;
}
测试结果如下:
四、重载
什么是函数重载
函数重载是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数 或 类型 或 顺序)必须不同,常用来处理实现功能类似数据类型不同的问题
为什么c语言不支持重载,C++支持重载?
因为C++重载函数,只要参数不同,修饰出来的名字就是不同的,那么就不会冲突,链接时就可以找到。C++使用修饰后的名字去找,C不是。
C++入门笔记,如有错误请批评指出。