南川网站建设,线上营销存在的问题,成品网站分享一下,做h5网站的公司#x1f499;作者#xff1a;阿润菜菜 #x1f4d6;专栏#xff1a;C 目录
概念
特性
出个题 概念 声明为static的类成员称为类的静态成员#xff0c;用static修饰的成员变量#xff0c;称之为静态成员变量#xff1b; 用static修饰的成员函数#xff0c;称之为静态… 作者阿润菜菜 专栏C 目录
概念
特性
出个题 概念 声明为static的类成员称为类的静态成员用static修饰的成员变量称之为静态成员变量 用static修饰的成员函数称之为静态成员函数。静态成员变量一定要在类外进行初始化 class A
{
public:
static int GetACount()
{
return _scount;
}
private:
static int _scount;
};int A::_scount 0;
void TestA()
{
cout A::GetACount() endl;
}
注static静态成员不属于某个对象属于整个类
特性
1. 静态成员为所有类对象所共享不属于某个具体的对象存放在静态区 2. 静态成员变量必须在类外定义定义时不添加static关键字类中只是声明 3. 类静态成员即可用 类名::静态成员 或者 对象.静态成员 来访问 4. 静态成员函数没有隐藏的this指针不能访问任何非静态成员 5. 静态成员也是类的成员受public、protected、private 访问限定符的限制
问题1 静态成员函数可以调用非静态成员函数吗 不能 静态成员函数与静态数据成员一样都是类的内部 实现属于类定义的一部分它为类的全部服务而不是为某一个类的具体对象服务。普通的成员函数一般都隐含了一个this指针this指针指向类的对象本身因为普通成员函数总是具体的属于某个类的具体对象的。通常情况下this 是缺省的。但是与普通函数相比静态成员函数由于不是与任何的对象相联系因此静态成员函数不具有this指针。从这个意义上讲它无法访问属于类对象的非静态数据成员也无法访问非静态成员函数它只能调用其余的静态成员函数。 问题2 非静态成员函数可以调用类的静态成员函数吗 非静态函数可以调用静态成员,但静态函数‘只能’直接访问静态成员要访问非静态得传参数 因为静态函数可以直接通过 类::函数 中方式调用不用通过对象来调用函数而非静态函数必须通过对象来调用这里面还涉及到实例化对象时候的内存分配。 看完之后还认识静态的“静”这个字吗
出个题
面试题实现一个类计算程序中创建出了多少个类对象
class A
{
public:
A() { _scount; }
A(const A t) { _scount; }
~A() { --_scount; }
static int GetACount() { return _scount; }
private:
static int _scount;
};
int A::_scount 0;
void TestA()
{
cout A::GetACount() endl;
A a1, a2;
A a3(a1);
cout A::GetACount() endl;
}