静态成员包括静态数据成员和静态成员函数
常数成员包括常量数据成员和常成员函数
// 静态成员属于类,不属于对象
// 静态数据成员和常量数据成员被简单函数调用时与简单数据成员一致(getA)
// 不同点在于
// 1,静态数据成员在外部定义使用 className::staticName的方式
// 2,常量数据成员在初始化时赋值,以后不可更改
// 静态成员函数和常成员函数,不能直接调用简单对象成员
#include
using namespace std;
class a{
int static i;
int const j;
public:
getA();
a();
int static fn1();
int fn2() const;
int static fn3(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;
//直接调用静态数据成员
return 0;
}
// 常成员函数需要写const
int a::fn2() const{
cout<<j<<endl;
// 直接调用常量数据成员
return 0;
}
// 常成员函数和静态成员函数需要使用简单数据成员时,需要手动传参
// 以static为例
int a::fn3(const a &ax){
cout<<ax.j<<endl;
// 调用常数据成员
cout<<ax.x<<endl;
// 调用简单数据成员
return 0;
}
int main(){
a b;
b.getA();
b.fn2();
a::fn1();
a::fn3(b);
return 0;
}
常数成员包括常量数据成员和常成员函数
// 静态成员属于类,不属于对象
// 静态数据成员和常量数据成员被简单函数调用时与简单数据成员一致(getA)
// 不同点在于
// 1,静态数据成员在外部定义使用 className::staticName的方式
// 2,常量数据成员在初始化时赋值,以后不可更改
// 静态成员函数和常成员函数,不能直接调用简单对象成员
#include
using namespace std;
class a{
public:
};
int a::i = 5;
a::a():j(1){}
a::getA(){
}
// 静态成员函数无需写static
int a::fn1(){
}
// 常成员函数需要写const
int a::fn2() const{
}
// 常成员函数和静态成员函数需要使用简单数据成员时,需要手动传参
// 以static为例
int a::fn3(const a &ax){
}
int main(){
}