与C++的初相识

1.头文件的引用与命名空间的初相识(C++文件以.cpp为后缀哦)

//头文件包含形式
#include <stdio.h>//像C语言那样包含C语言库
#include <cstdio>//去掉.h,在文件名前加c,包含C语言库时可如此操作
#include <iostream>//C++标准输入输出流头文件
//与命名空间的初相识
namespace 空间名1
{
	int a = 1;
}
namespace 空间名2
{
	int a = 2;
}
//命名空间要点:
// 1.作用:增加相同标识符的使用率
//2.变量为全局变量

对命名空间的访问。

 1.1     ::作用域分辩符作用1.空间名限定,类名限定。2.用来标识全局变量

  1.2      using namespace 空间名,使用

namespace 空间名1
{
	int a = 1;//空间的成员,数据
	void print();
}
void 空间名1::print()//::四个小点叫作用域分辩符,表明此函数来自哪里(空间名限定)
{
	printf("这是来自空间名1中的函数哦");
}
namespace 空间名2
{
	int a = 2;
	void print();
}


int main()
{
	空间名1::a = 99;
	空间名2::print();//前缀比较麻烦,就有了新的方法
	//using语法,using namespace 空间名
	using namespace 空间名1;
	a = 999;//来自空间名1的变量a
	//不要存在二意性问题(编译器不知道哪个)
	using namespace 空间名2;
	a = 999;//这里的a报错:“a”不明确
	空间名2::a = 9999;//这里就不会报错,方法各有千秋
	return 0;
}

至于空间名的嵌套,访问,大家一看就会

namespace 空间名2
{
	int a = 2;
	void print();
	namespace 空间名3
	{
		int a = 3;
	}
}



	空间名2::空间名3::a = 999;//方法1
	using namespace 空间名2;//方法2
	空间名3::a = 99;

2基本输入和输出

一般包含命名空间using namespace std;

输出cout<<输出值,输入cin>>输入值  .C++支持C语言格式控制字符

#include <iostream>//C++标准输入输出流头文件
using namespace std;//不要忘了加这个

	char str[] = "love you";
	cout << "I love you!";
	cout << str;
	//一次打印多个数据
	cout << str << "\n" << c << "\t" << "哈哈哈";
	//强制转换
	cout << str << "\n" << int(c) << "\t" << "哈哈哈";//C++方式
	cout << str << endl << (int)c << "\t" << "哈哈哈";
	//C++中可用关键字endl替换\n的作用

	int num = 0;
	float fnum = 0.0f;
	char strr[10] = "";
	printf("请输入一个整数,一个浮点数,一个字符串");
	cin >> num >> fnum >> strr;

输入的空格问题

	char str[10] = "";
	cin >> str;
	cout << str;
	char s;//输入I love you时只会将I传给s
	cin >> s;
	cout << s;
	while (getchar() != '\n');//这是上面的三行问题的解决方案,家在char s之前后都可
	//对象调用成员,接受空格输入
	cin.getline(str, 9);
	cout.write(str, 9);
}

如果没有加using namespace std;那么std::cin>>   std::cout<<     C++标准库调用std::

新的数据类型

2.1bool类型占用一个字节,计算机中非零表示成立,0和空表示不成立

用于充当函数返回值,开关,输出(只有0和1)

C++中有专有的赋值方式false true

C++中空指针用nullptr

2.2引用类型

基本引用         类型名&别名=要起别名的量

常引用(右值引用)

void testbool()
{
	bool num = -1;
	num = false;
	num = true;
	cout << num << endl;
	int* p = nullptr;//nullptrC++新引入的关键字
}
void printstr(const char* str)//形参必须用const修饰
{
	cout << str << endl;
}
void modifyB(int& a) //int&a=实参
{
	a = 999;
}
int num = 999;
void modifyPointA(int* p)
{
	p = &num;
}
void modifyPointB(int*& p)//引用
{
	p = &num;
}
void printRIghtvalue(int&& m)//可修改num的值
{
	m = 9;
	cout << m << endl;
}
void testquote()
{
	int hhh = 3;
	//类型&别名=要起别名的量
	int& 哈哈哈 = hhh;//引用
	哈哈哈 = 999;
	cout << hhh << endl;
	printstr("llllll");
	int& x = 1;//报错
	const int& x = 1;//不报错,常量取别名要用const修饰
	int&& x = 1;//不报错常量是右值,右值引用
    //类型名&&别名=右值
}

自动推断类型auto:必须根据赋值的类型推断数据;不能直接推断

auto  p=&a;自动推断p为指针类型

3函数思想

3.1 内敛思想     inline关键字   函数编译完的代码以二进制的形式存在(短小的函数)

默认内敛:在结构体或者类实现的函数

3.2 函数重载  :C++允许同名不同参函数存在(参数的数目,类型,顺序不同)

3.3 函数缺省:C++中允许给函数形参初始化,顺序必须从右往左,不能存在没有缺省的

//内敛函数
inline int Max(int a, int b)
{
	return a > b ? a : b;
}
//函数重载
void print(int a)
{
	cout << a;
}
void print(int a, int b)
{
	cout << a << b << endl;
}
void print(char a, int b)
{
	cout << a << b << endl;
}
//重载调用,优先调用类型一致的
//函数缺省
void print(int a, int b = 2, int c = 4)
{
	cout << a << a + b << c << endl;
}

我是真萌新,就先说到这里啦,有什么不怼的请大佬指正,睡觉喽。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值