C++学习一二
为了更深入的学习程序编写,以及进行相关算法的编写。决定每天花点时间学习C++;以下是每天的学习笔记。
一、std代表命名空间,可以用using来省略。
二、std:endl。输出一个换行符,并且“刷新输出缓冲”。
三、C++中,访问权限一般默认为private,只能被声明它们的类的成员函数访问,一般将类的所有public成员函数、变量列在一个组中,private 的列在一个组中。
四、最好将一个类对应一个独立文件,“”代表的是程序源代码文件和用户定义的头文件;<>代表的是C++标准库对应的目录。
五、C++中,将类的接口(.h接口文件,最后需要加;)和类的具体实现(.cpp文件)分开。(p77)
问题:(1)如何利用g++实现编译、连接和运行的整个过程?
(2)头文件仅仅是规定了函数原型?那么实现是在什么地方?
(3)C++中接口和类在定义时候没有区别?
六,在java中,函数必须依附于类而存在,但是在c++中却未必如此。函数作为类的成员时候为成员函数,当函数不是任何类的成员时,这样的函数称为全局函数。
七,很多.h结尾的头文件是旧式的头文件,已经被C++标准头文件所取代。
八、存储类别分为自动存储类别和静态存储类别,这是从生存周期的角度进行的分类。
auto和register可以用来声明自动存储类别的种类。这样的变量是在程序执行进入到定义他们的程序块儿的时候创建,程序执行退出程序块儿的时候销毁。auto一般不需要进行显式说明,register是寄存器变量,这两个一般是不必要的。
静态存储类别,在程序开始执行的时候就存在,一直存在于程序执行过程中,利用extern和static修饰。
从作用域的角度分类:函数作用域,文件作用域(声明于任何函数或者类之外的标识符具有文件作用域,位于函数之外的全局变量、函数定义和函数原型都具有文件作用域)、语句块作用域、函数原型作用域(唯一的情况就是函数原型参数列表中的标识符)、类作用域、命名空间作用域。都是从声明处到作用域结束。