c++入门小知识

1,.命名空间

  实际上就是一个由程序设计者命名的内存区域,程序设计者可以根据需要指定一些有名字的空间域,把一些全局实体分别放在各个命名空间中,从而与其他全局实体分隔开来。

 

看例子:

namespace lll
{
	int a;
	int b;
}

int main()
{
	std::cout << "hello world" <<std:: endl;
	system("pause");
	return 0;
}


namespace 是定义命名空间所必须写的关键字,lll就是我自己建立的一个命名空间的名字;在花括号内是声明块,在其中声明的实体称为命名空间成员,命名空间内包含变量a和b,如果lll 建立在全局变量区,那么变量a和变量b均为全局变量,只不过将他放在了命名空间内;注意使用时不要重定义。花括号内不止可以定义变量,还可以定义很多东西。

*类

*函数

*构造函数

*结构体

*常量等等;

那么怎么使用命名空间内的元素呢?有两种方法。

第一是在使用时加上命名空间的名字;比如

lll::a,lll::b;

lll是命名空间的名字,::叫做域作用符;在使用时不可省略。

第一种方法在多次使用lll这个空间时,就会每次都需要拼写一边。无形降低了效率;那么还有一种方法,

在前面加上 use namespace lll;即可;

c++中提供了一些命名空间,比如std标准命名空间;包含在标准输入输出库<iostream>中;


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

c++中其实并没有定义任何的输入输出语句,而是包含了一个全面的标准库来提供IO机制,其中有一个iostream库,其中包含了两个基础类型istream和ostream,分别表示输入和输出流。

其中又各自包含了对象cin和cout,称为标准输入和标准输出。还有cerr用来输出警告和错误,称为标准错误。

c++可以认为是从语言的升级版,所以c中的特性c++都支持,其中就包括C语言中的输入输出。比如printf函数和scanf函数在c++中同样可以使用。但C语言中,使用printf和scanf就必须指明数据类型,不免显得有些麻烦,在c++中就简化了这种操作。

c++中使用对象cin和cout作为输入输出语句加上输入输出操作符"<<"和">>"来实现,不必指明数据类型,比如

namespace lll
{
	int a=10;
	int b=20;
}
int main()
{
	std::cout << "hello world" <<std::endl<<lll::a<<" "<<lll::b<<" "<<std:: endl;
	system("pause");
	return 0;
}

输出结果为:


从上面的例子可以看出在c++中使用cout输出不需要注明数据类型,程序会根据数据本身的类型来输出。但这种输出却在输出带精度的浮点数时会很麻烦。在这种情况下我们就直接使用prinf会比较方便一些。

C++为什么支持重载?
重载: 如果同一个作用域内的几个函数名字相同但形参列表不同(参数类型或者参数数量不同),我们称为重载。

看下面的例子
#include <iostream>

using namespace std;

int add(int a, int b)
{
	return a + b;
}
float add(float a, float b)
{
	return a + b;
}

int main()
{
	int ret = add(1, 2);
	float resul = add(1.0f, 3.0f);
	cout << ret << " " << resul << endl;
	system("pause");
	return 0;
}

这个小程序中定义了两个名字相同的函数add,但是因为形参类型不同,编译器依然可以通过。

其实在c++中,虽然表面上看起来两个函数的名字是相同的,但是在底层的实现中是不同的。在底层中两个add的名字是不同的。
注意:main函数不支持重载。

c++缺省参数
缺省参数,就是在声明函数的某个参数的时候为之指定一个默认值,在调用该函数的时候如果采用该默认值,你就无须指定该参数。
缺省参数使用主要规则:调用时你只能从最后一个参数开始进行省略,换句话说,如果你要省略一个参数,你必须省略它后面所有的参数,即:带缺省值的参数必须放在参数表的最后面。 缺省值必须是常量













猜你喜欢

转载自blog.csdn.net/liuxiaokai_liu/article/details/78088046
今日推荐