在学习中遇到很多不会的,虽然解答了问题,但是同时自己产生了新的疑问。本就是来记录自己一些不会的东西
“::”和’:’的区别
一、”::”
- 类作用域操作符。“::”指明了成员函数所属的类。如:M::f(s)就表示f(s)是类M的成员函数。
- 表示“域操作符”。在类定义外,void A::f(),表示f()是类A的成员函数
- 表示引用成员函数及其变量,作用域成员运算符。System::Math::Sqrt() 相当于System.Math.Sqrt()
二、’:’ - 表示结构内位域的定义(即该变量占几个bit空间)
- 构造函数后加冒号表示初始化表达式。例:iStack( int capacity ) : _stack( capacity ), _top( 0 ) { } //冒号后面的内容是初始化类的数据成员 _top;_stack;
- public:和private:后面的冒号,表示后面定义的所有成员都是公有或者私有的。
- 类名冒号后面的是用来定义类的继承
时间复杂度和空间复杂度
时间复杂度:时间复杂度的计算并不是计算程序具体运行的时间,而是算法执行语句的次数
空间复杂度:是对一个算法在运行过程中临时占用存储空间大小的量度
class和typename的区别
- 在模板定义语法中关键字class与typename的作用完全一样
- typename可以表示一个嵌套依赖类型名,但是在基类列表和成员初始化列表时,可以不用typename;这个时候typename的作用就是告诉C++编译器,typename后面的时一个类型名称,而不是成员函数或者成员变量
子类和父类名称
- 继承创建的新类称为“子类”或“派生类”,被继承的类成为“基类”,“父类”或“超类”。