static和const修饰的类成员
来源:互联网 发布:沙发什么意思网络用语 编辑:程序博客网 时间:2024/06/05 20:52
类的static静态数据成员:
class A{ public: static int i ;};
初始化方法: int A::k=100;
静态成员变量的初值只应该设定一次,不要把初始化操作放在类的构造函数中,因为构造函数可能一再被调用,也不要放在类的头文件中,因为头文件可能被载入许多地方从而被执行许多次。初始化时必须写上数据类型(int)和类名限定(A::),就像类的函数成员实现时必须写上函数返回值类型和类名限定一样。
类的static静态函数成员:
class A{ public: static void fun( ) ;};实现方法:
void A::fun( )
{cout<<"class A fun()!";}
在类的源文件.cpp里进行函数实现,实现方法跟普通函数成员的实现一样。类的静态函数只能访问该类的静态数据成员或静态函数成员。如果要访问非静态数据成员必须通过参数传递得到类对象名,然后通过对象名来访问。如下:
class A{public: static void fun(A a ) ; int i;};函数实现:
void A::fun(A a )
{
a.i=55;
cout<<a.i;
}
类的const常数据成员:
class A{public: A(int j); const int i;};初始化方法:
A::A(int j):i(j)
{ }
常数据成员只能通过构造函数初始化列表来获取初值。常数据成员得到初值后不能更新。
类的const常函数成员:
class A{public: A(int j,int m); const int i; int q; static int k; void fun( ) const ; };
函数实现:
A::A(int j,int m ):i(j),q(m){ }int A::k=456;void A::fun( ) const{ k=789; //正确,能对静态数据成员更新。 q=111; //错误,不能对普通数据成员更新。 i=222; //错误,常数据成员初始化后不能更新。 cout<<i<<endl<<q<<endl<<k; //正确,能访问所有数据成员。}
常函数成员能访问常数据成员,静态数据成员和普通数据成员,但不能对常数据成员和普通数据成员更新。
类的const对象(常对象)
const A(123,456);
类的常对象只能调用该类的常函数成员,由于常函数成员不能对常数据成员和普通数据成员更新,只能对静态数据成员更新,所以常对象不能修改自己的数据成员,也因此才能叫常对象。(静态成员不属于一个对象而属于整个类。)
类的静态常数据成员
class A{public: A(int j,int m); const int i; int q; static const int k; void fun( ) const ; };函数实现:
A::A(int j,int m):i(j),q(m){ }const int A::k=789; //类的静态常数据成员类似于静态数据成员赋初值,但要记得前面加const。void A::fun( ) const{ k=111; //错误,静态常数据成员也是常数据成员,常数据成员得到初值后不能更新。 cout<<i<<endl<<q<<endl<<k; //正确,能访问静态常数据成员。
0 0
- static和const修饰的类成员
- static和const修饰的类成员
- static和const修饰的类成员
- 类成员的const, static修饰
- 能不能同时用static和const修饰类的成员函数?
- static修饰类数据成员 与 static const数据成员
- C++ static const 修饰成员
- const static 和 static 成员的初始化
- 类的static成员函数和const成员函数
- 类的static成员函数和const成员函数
- 有关static成员函数不能用const修饰的问题
- 类的const static成员
- const修饰类成员和类对象
- 修饰类成员函数的几个关键字:inline, const, explicit, static, virtual
- 浅谈C++中类的const成员变量,static成员变量和const static成员变量的区别
- Static成员函数不能修饰const
- const修饰的类成员函数
- 用const修饰的类成员
- js 数字校验
- c# 代码生成6个checkbox 并初始化已知的一个数组到checkboxtext内
- 如何成为顶尖WordPress开发者
- 人品计算器
- 第14周项目增加string name[]输出分数的最高,最低,平均分,总分
- static和const修饰的类成员
- 第14周上机实践项目5——体会棋盘游戏中的数据存储(1)
- Linux 下zip包的压缩与解压
- keepalived 主备服务负载均衡、基于LAMP平台
- 解决javax.servlet.jsp.JspException cannot be resolved to a type
- C++ map
- linux -which命令
- Slope One 算法
- 第9周项目 6.8 加减乘除