首页 > 代码库 > C++对C的加强 总结(1)
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变量是一个很好的补充。
*/ |