-
vector 向量,本质是对数组的封装,比普通数组功能强大得多查看全部
-
加 const 的实质是给他的隐形函数 this 指针加 const ,作为静态的成员函数来说根本没有 this 指针,编译会报错。普通成员函数调用静态成员函数是可以的,但是静态成员函数调用非静态成员函数就不行查看全部
-
静态数据成员不依赖于对象的实例化,因此静态数据成员不在构造函数中实例化,往往是单独进行的 int Tank::s_iCount=0;<br> 访问可以不通过对象直接通过类访问数据 Tank :: s_iCount 或者通过类的方法 Tank::getCount(); 放问到数据成员,当然,也可以用对象访问到,静态数据成员不能写在构造函数中,只能单独初始化。<br> 静态成员函数或数据成员是依赖类的,随类的产生而产生,而普通数据成员及成员函数依赖于对象,只有实例化对象才会产生,如果用静态的数据成员或成员函数调用普通数据成员或成员函数而此时还没有实例化对象,即没有产生普通数据成员或成员函数,显然是不对的,编译器就会报错。<br> 静态成员函数无法调用非静态的数据成员或成员,但可以调用静态数据成员和成员函数 普通数据成员实例化4个对象时就会产生4个数据成员,静态数据成员随着类的产生而产生,并且它的值变化但是数量不会变化,即始终只有一个 i_count 普通成员函数 fire()调用普通数据成员和静态数据成员时看似一个参数都没有传,实际却传了隐形的 this 指针,通过this指针知道当前调用的是那个对象的对应的数据成员或成员函数,而静态数据成员或成员函数由于并不与对象对象相关或者说是全局变量,因此没有 this 区分哪个对象也无所谓,直接调用静态数据成员或成员函数。也由于静态成员函数并没有传递 this 指针,也就无法区分调用的数据成员是哪个对象的数据成员,因此静态成员函数中无法调用非静态的数据成员和成员函数,但是可以调用静态数据成员和成员函数,因为他们都是全局的。查看全部
-
在 Coordinate 类中声明友元类 Circle ,就可以在 Circle 中定义一个Coordinate 对象,在 Circle 中用 Coordinate 对象访问到 Coordinate 类中的私有成员,在 Coordinate 对象中声明友元类 Circle 时,要在 Coordinate 类之前声明 Circle 类 class Circle,告诉编译器有这个类。 注意:友元关系不可传递(B是A朋友,C是B朋友,不代表C是A的朋友); 友元关系具有单向性;(A是B的朋友单B不是A的朋友) 友元声明形式及数量不受限制; 友元是封装的补充,定义为其他数据结构的友元时就等于将自己的数据暴露给该数据结构,破坏了封装性,不到迫不得已一般不用友元。查看全部
-
map的使用方法2查看全部
-
map的使用查看全部
-
用迭代器遍历向量查看全部
-
向量的遍历查看全部
-
向量常用函数查看全部
-
初始化vector对象的方式查看全部
-
每一个成员函数前都要写template<typename T>查看全部
-
类外定义查看全部
-
类外定义模板类查看全部
-
由于编译器不同,友元类有两种写法。1、friend class 类名; 2、friend 类名;查看全部
-
运算符重载实质是函数查看全部
举报
0/150
提交
取消