首页 > 代码库 > C++对C的加强 总结(1)

C++对C的加强 总结(1)

程序设计方法的发展历程

面向过程的结构化程序设计方法。

自 顶向下、逐步求精。

面向对象的方法

   封装、继承、多态

   把对象的属性和操作封装起来,形成一个类;类是一个抽象的概念;class

C语言和C++语言关系

C语言是在实践的过程中逐步完善起来的 C语言的目标是高效

C语言 面向对象方法论===Objective C /C++

每一个程序员都不能固步自封,要多接触新的行业、新的技术领域。暂新的突破自我

 

 

 

namespace概念

C语言中只有一个全局作用域

C语言中只有一个全局作用域

stdc++标准命名空间,c++标准程序库中的所有标识符都被定义在std中,比如标准库中的类iostreamvector

可以更好地控制标识符的作用域

1) 当使用<iostream>的时候,该头文件没有定义全局命名空间,必须使用namespace std;这样才能正确使用cout。若不引入using namespace std ,需要这样做。std::cout

2) c++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h。

3) C++命名空间的定义: namespace name {  …  }

4) using namespace NameSpaceA;

5namespce定义可嵌套。

 

 

namespace NameSpaceA

{

int a = 0;

}

 

namespace NameSpaceB

{

int a = 1;

 

namespace NameSpaceC

{

struct Teacher

{

char name[10];

int age;

};

}

}

 

int main()

{

using namespace NameSpaceA;

using NameSpaceB::NameSpaceC::Teacher;

 

printf("a = %d\n", a);

printf("a = %d\n", NameSpaceB::a);

 

Teacher t1 = {"aaa", 3};

 

printf("t1.name = %s\n", t1.name);

printf("t1.age = %d\n", t1.age);

 

system("pause");

return 0;

}

 

Register

//register关键字 请求编译器让变量a直接放在寄存器里面,速度快

//c语言中 register修饰的变量 不能取地址,但是在c++里面做了内容

 

/*

//1

register关键字的变化

register关键字请求“编译器”将局部变量存储于寄存器中

C语言中无法取得register变量地址

C++中依然支持register关键字

C++编译器有自己的优化方式,不使用register也可能做优化

C++中可以取得register变量的地址

 

//2

C++编译器发现程序中需要取register变量的地址时,register对变量的声明变得无效。

 

//3

早期C语言编译器不会对代码进行优化,因此register变量是一个很好的补充。

 

*/