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

程序设计方法的发展历程


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


自 顶向下、逐步求精。


面向对象的方法


封装、继承、多态


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


C语言和C++语言关系


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

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


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


namespace概念


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

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

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

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


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

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

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

4) using namespace NameSpaceA;

5)namespce定义可嵌套。


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变量是一个很好的补充。

*/

C++对C的加强 总结(1),布布扣,bubuko.com

时间: 2024-08-11 06:31:52