c++静态成员和常数成员

来源:互联网 发布:php strtotime date 编辑:程序博客网 时间:2024/06/05 14:59
静态成员包括静态数据成员和静态成员函数
常数成员包括常量数据成员和常成员函数

// 静态成员属于类,不属于对象

// 静态数据成员和常量数据成员被简单函数调用时与简单数据成员一致(getA)
// 不同点在于
// 1,静态数据成员在外部定义使用 className::staticName的方式
// 2,常量数据成员在初始化时赋值,以后不可更改


// 静态成员函数和成员函数,不能直接调用简单对象成员


#include
using namespace std;

class a{
    int statici;
    int constj;
public:
   getA();
    a();
    int staticfn1();
    int fn2()const;
    int staticfn3(const a&);
};
int a::i = 5;

a::a():j(1){}
a::getA(){
   cout<<i<<endl;
   cout<<j<<endl;
}

// 静态成员函数无需写static
int a::fn1(){
   cout<<i<<endl;//直接调用静态数据成员
    return0;
}
// 常成员函数需要const
int a::fn2() const{
   cout<<j<<endl; // 直接调用常量数据成员
    return0;
}

// 常成员函数和静态成员函数需要使用简单数据成员时,需要手动传参
// 以static为例

int a::fn3(const a &ax){
   cout<<ax.j<<endl;//调用常数据成员
   cout<<ax.x<<endl;//调用简单数据成员
    return0;
}


int main(){
    a b;
   b.getA();
   b.fn2();

   a::fn1();
   a::fn3(b);
    return0;
}

原创粉丝点击