如何用网站模板建设网站,wordpress汽车主题公园,衡水手机网站建设公司,展芒设计网页命名空间刚开始接触c#xff0c;我们会发现与C语言相比不光头文件有所不同#xff0c;还会发现using namespce std#xff1b;这句话#xff0c;其实这就是c的命名空间。 (1)
概念命名空间是为了防止名字冲突提供更加可控的机制。命名空间分割了全局命名空间#xff0c;其…命名空间刚开始接触c我们会发现与C语言相比不光头文件有所不同还会发现using namespce std这句话其实这就是c的命名空间。 (1)
概念命名空间是为了防止名字冲突提供更加可控的机制。命名空间分割了全局命名空间其中每一个命名空间是一个作用域。由三部分组成分别是namespace、空间名字和一系列由花括号括起来的声明和定义。 (2)
作用是建立一些互相分隔的作用域把一些全局实体分隔开来。 (3)
例子命名空间和类就好比是文件夹和文件的关系。命名空间就像是文件夹它包含了若干个文件这样可以将定义的很多类整齐地摆放起来不仅可以避免命名冲突还可以简化对类成员的访问。用花括号把文件的一部分括起来 并以关键字namespace开头给它 起一个名字
namespace name1
{
int a 0;
}
namespace name2
{
int a 1;
}
name1: : a 3;
name2: : a 4;
::是作用域解析符
(4)
优点如果在程序一开始不写上using namespace std;那么每次使用时就要这样写,这样显然比较麻烦。 注endl相当于c语言中的\n.
#includeiostream
//using namespace std;
int main()
{std::couthello worldstd::endl;couthello worldendl;return 0;
}
(5)
嵌套使用
#includeiostream
using namespace std;
namespace you
{int a1;namespace me{int a2;}
}
int main()
{cout you::me::a endl; return 0;
}输入输出流
流数据之间的传输操作。 输入输出操作是由istream输入流和ostream输出流提供的,iostream是从这两个类中派生的允许双向输入和输出。这个库定义了3个标准流对象。 1cin:标准输入的istream类对象使用户能够从终端读数据默认是键盘。 是输入操作符。 2cout:标准输出的ostream类对象使用户能够从终端写数据默认是屏幕。 是输出操作符。 3cerr:标准输出的ostream类对象cerr输出程序错误默认是屏幕。
重载
(1)概念
所谓重载其实就是“一物多用”。 函数重载即在同一作用域类 一组函数的函数名相同 参数列表不同 个数不同/类型不同 ,返回值可同可不同。不仅函数可以重载运算符也可以重载例如运算符””和””既可以作为位移运算符又可以作为输入操作符和输出操作符。
(2)原因
那么为什么C支持重载呢其原因在于函数名的修饰规则。从代码的编译到运行在VC6.0或VS这种编译器下它是系统直接完成了翻译与链接直接生成了运行结果。 编译器内部完成了翻译部分 1.预处理 2.编译过程将高级语言转为汇编语言。 3.汇编过程汇编语言转为二进制程序生成目标文件。 4.链接部分所引用的数据链接进来形成可执行程序。 比如一个函数的声明如下 void function(int x,int y) 在c语言中编译器在编译后在库中的名字为_function 在c中编译器在编译后在库中的名字为_function_int_int在链接时是找名字进行链接由于C中它们的名字不一样所以就不会报错。 (3)规则
① 函数名要相同 ② 参数个数不同参数类型不同参数顺序不同均可构成重载 ③ 返回值类型不同则不可以构成重载。
C缺省参数
(1)概念在函数声明或定义的时候给形参一个默认的参数。这样在调用该函数如果没有给实参函数的这个形参就默认为这个值。
// 全缺省参数
int Add1 (int a 0, int b 0)
{
return a b;
}
//半缺省参数
int Add2 (int a, int b 0)
{
return a b;
}int main()
{
countAdd(1,2)endl;//此处用默认的1,2
countAdd()endl;//不传值时默认用缺省的0,0
return 0;
}
(2)使用规则
缺省参数赋值必须要连续且从右向左赋值 不能把const的全局变量作为缺省值 缺省值必须是常量 调用时你只能从最后一个参数开始进行省略
指针和引用指针 学习C语言时已经知道每一个数据都是有地址的通过地址就可以找到所需的内存空间。 (1)概念一个变量的地址称为该变量的指针。 (2)使用方法基类型 * 指针变量名
*const指针*常指针int a1;
const int*pa;//定义了p为指向整形变量a的const指针变量
*p15;//非法不允许通过指针变量改变它指向的对象的值指针的作用和特点前面已经有了深入学习在这里不再加以详细介绍。
引用
(1)概念引用不是定义一个新的变量 而是给一个已经定义的变量重新起一个别名。 (2)使用方法类型 引用变量名 已定义过的变量名.
*普通引用*
int mian()
{int a10;intba;
}*const引用*
int main()
{const int a10;//a被const修饰它的值就不能再被改变int ba;//编译不能通过const int ba;//此处可以通过,a的值改变b的值也会改变const int b5; // 常量具有常性 只有常引 用可以引 用常量
}*不同类型变量间的引用*
int main()
{int a20;double b30.123;int cb;//不能通过const int cb;//编译可以通过原因见下图
}想要用int类型的c来引用double型的b首先先会将b变量放入一个int类型临时变量再用const int类型的c来引用这个临时变量临时变量具有常属性所以就需要有一个const int类型的名字来完成这个引用。
(3)特点 1. 一个变量可取多个别名 2. 引用必须初始化 3. 引用只能在初始化的时候引用一次 不能改变为再引用其他的变量。
(4)作用
1.做参数
1.做参数#includeiostream
using namespace std;
void swap(inta,intb)
{int ca;ab;bc;
}
int main()
{int x110;int x220;coutx1 x2endl;swap(x1,x2);coutx1 x2endl;
}
2.做返回值
#includeiostream
using namespace std;
int red;
int Add(int t1,int t2)
{int rett1t2;return ret;
}
void main()
{int a2,b3;int cAdd(a,b);coutcendl;
}
指针和引用的区别
1指针是存储另一个对象的地址的变量而引用是对象的别名。 2指针未被初始化或被删除时应将NULL赋给它但引用不能为空。 3sizeof指针对象和引用对象的意义不一样sizeof引用是指向变量的大小sizeof指针是指对象地址的大小。 4引用只能在定义时初始化一次 之后不能改变指向其它变量 从一而终, 指针变量的值可。 5 指针和引用自增()自减(–)意义不一样。 6 相对而言 引用比指针更安全。