静态数据成员和静态成员函数用法精髓
来源:互联网 发布:淘宝开店收费吗2016 编辑:程序博客网 时间:2024/06/05 01:17
这里总结了静态数据成员和静态成员函数的用法要求和注意事项,供互相交流学习使用。
#include<iostream>
using namespace std;
class A
{
private:
int m_data;
static int s_data;
mutable int c_data;
public:
A(int data = s_data,int data2 = 777):m_data(data),c_data(data2){}
//1.静态数据成员可以作为默认实参
static int get_sdata();
void display()
{
cout << m_data << endl;
cout << s_data << endl;
cout << c_data << endl;
}
void func() const
{
//m_data ++;
s_data ++;//2.静态数据成员可以使用const类型的成员函数
c_data ++;
}
};
int A::s_data = 666;//3.必须在类外初始化静态数据成员s_data
int A::get_sdata()
{
return s_data;
int main()
{
/*
cout << "s_data:" << A::s_data << endl;//4.可以使用A::来显示或调用静态成员变量,这里A为作用域
A a1;
A a2;
A a3;
a1.s_data ++;
a2.s_data ++;
a3.s_data ++;
A::s_data ++;
cout << "s_data:" << a2.s_data << endl;//5.以上4行共享同一个变量s_data
cout << "sizeof:" << sizeof(A) << endl;//6.通过sizeof说明static不属于任何一个对象,
//6.并不占用类空间
*/
A a;
a.display();
a.func();
a.display();
//cout << "&s_data:" << &a.s_data << endl;
cout << A::get_sdata() << endl;//静态成员函数不属于任何一个对象
}
#include<iostream>
using namespace std;
class A
{
private:
int m_data;
static int s_data;
mutable int c_data;
public:
A(int data = s_data,int data2 = 777):m_data(data),c_data(data2){}
//1.静态数据成员可以作为默认实参
static int get_sdata();
void display()
{
cout << m_data << endl;
cout << s_data << endl;
cout << c_data << endl;
}
void func() const
{
//m_data ++;
s_data ++;//2.静态数据成员可以使用const类型的成员函数
c_data ++;
}
};
int A::s_data = 666;//3.必须在类外初始化静态数据成员s_data
int A::get_sdata()
{
return s_data;
//return *this;//若想在静态成员函数里返回*this,是错误的
//关于静态成员函数,这里要补充一点,不可在静态成员函数里直接调用非静态数据成员,要通过定义类对象间接调用非静态数据成员
}int main()
{
/*
cout << "s_data:" << A::s_data << endl;//4.可以使用A::来显示或调用静态成员变量,这里A为作用域
A a1;
A a2;
A a3;
a1.s_data ++;
a2.s_data ++;
a3.s_data ++;
A::s_data ++;
cout << "s_data:" << a2.s_data << endl;//5.以上4行共享同一个变量s_data
cout << "sizeof:" << sizeof(A) << endl;//6.通过sizeof说明static不属于任何一个对象,
//6.并不占用类空间
*/
A a;
a.display();
a.func();
a.display();
//cout << "&s_data:" << &a.s_data << endl;
cout << A::get_sdata() << endl;//静态成员函数不属于任何一个对象
}
1 0
- 静态数据成员和静态成员函数用法精髓
- 静态数据成员和静态成员函数
- 静态数据成员和静态成员函数
- 静态成员数据和静态成员函数
- 静态数据成员和静态成员函数
- 静态数据成员和静态成员函数
- 静态数据成员和静态成员函数
- 静态数据成员和静态成员函数
- 静态数据成员和静态成员函数
- 静态数据成员和静态成员函数
- 静态数据成员和静态函数成员
- 静态数据成员和静态成员函数
- 静态成员:静态数据成员和静态成员函数
- C++静态成员:静态数据成员和静态函数成员
- 静态成员函数和数据成员
- 静态数据成员和函数
- 静态数据和静态成员函数
- 静态数据成员和静态数据成员函数
- 那年,我在笃行湖上
- poj 1426 Find The Multiple(搜索)
- 算法---直接插入排序
- 怎样学习图像处理技术?(二)
- iOS加载网络图片,删除本地或者网络图片
- 静态数据成员和静态成员函数用法精髓
- Max Sum
- 48. Rotate Image
- 自定义UIPickerView修改显示样式
- hdu3929 容斥+扩展Lucas定理
- Leetcode 397. Integer Replacement (Easy) (cpp)
- 多态特性---主板设计模式
- hive中if和coalesce 去除null值,case when
- 面向对象_通过JDK的帮助文档学习Math类的随机数功能