static成员定义的一个例子

来源:互联网 发布:美食知乎精华 编辑:程序博客网 时间:2024/06/05 15:05

在本例中,将看到类的静态成员可以是本身所定义的类类型。也只有static类成员才可以如此定义,否则,成员变量只能定义成类的引用或指针。

class C中含有两个构造函数:C(std::string)及C(C* p)。前者为私有构造函数,故只能被静态成员外部定义时使用。

静态成员的定义分成二步:必需分为类内声明、和类外定义。本例中用"icanth"初始化对象stc_c的_name。

#include <iostream>#include <string>class C{private:static C stc_c; // 类内声明C* p_c;std::string _name;private:C(std::string name):_name(name) { }public:C( C* p = & stc_c ): p_c (p), _name( "undef" ) { }void print();};void C::print() { std::cout << "The static name is : " << p_c->_name << '\n'<< "The object name is " << _name << std::endl; }C C::stc_c("icanth");// 类外定义void test(char * args[], int argc){C c;c.print();}

运行截图

原创粉丝点击