举例静态类成员
class Triangular{
public:
private:
static vector<int> _elems;
vector<int>Triangular::_elems;
int Triangular::_initial_size = 8;
if(_elems.size()<elem_cnt)
{
gen_elements(elem_cnt);
}
class intBuffer{
public:
private:
static const int _buf_Size = 1024;
int _buffer[_buf_size];
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 一般情形下,成员函数必须通过其类的某个对象来调用;
- 这个对象会被绑定到该成员函数的this指针;
- 通过存储于每个类对象中的this指针,成员函数才能够访问存储于每个类对象中的非静态数据成员,即通过this指针可以访问类私有成员;
- 静态成员函数的操作与任何对象都没有关联,所以可以很方便的用一般自定义函数的方式来调用,但必须加类作用域运算符;
- “静态成员函数”可以在“与任何对象都无关联”的情形下被调用;
- 成员函数只有在“不访问任何非静态成员”的条件下才能被声明为static,声明方式是添加关键字static;
- 当我们在class主体外部进行成员函数的定义的时候,如果声明加了static,定义时就不用再加static了。
bool Triangular::
is_elem(int value)
{
if(!_elems.size()||_elems[_slems.size()-1] < value)
{
gen_elems_to_value(value);
}
vector<int>::iterator found_it;
vector<int>::iterator end_it=_elems.end();
found_it = find(_elems.begin(), end_it, value);
return found_it != end_it;
}
if(Triangular::is_elem(8))
{
}
class Triangular{
public:
static bool is_elem(int);
static void gen_elemnts(int length);
static void gen_elems_to_value(int value);
private:
static const int _max_elems = 1024;
static vector<int> _elems;
};
void Triangular::gen_elems_to_value(int value)
{
}