关于只读成员函数
来源:互联网 发布:带函数冒泡排序c语言 编辑:程序博客网 时间:2024/05/22 15:28
// Contest_Test.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <iostream>using namespace std;class CTest{int m_nCount;int m_nIndex;static int m_nSta;public:static const int m_nStatic;//const static int m_nNum = 0; 在DEV-C++当中可以运行通过,这里报错public:CTest()//:m_nStatic(0) 不能在这里初始化{m_nIndex = 0;m_nCount = 0;//m_nStatic = 0; ERROR}CTest(int i, int j){m_nIndex = j;m_nCount = i;}int GetCount()const{//m_nCount = 0;只读成员函数不能修改本类内的非静态成员变量m_nSta = 88;return m_nCount;}int GetCount(){return m_nCount;}int GetIndex(){return m_nIndex; //这里可有修改非静态成员变量}void GetSta() const{cout<<m_nSta<<endl; //普通成员函数可以访问静态成员变量}int GetStatic() const{return m_nStatic;}};int CTest::m_nSta = 9;const int CTest::m_nStatic = 8;int main(int argc, char* argv[]){CTest t;CTest t1(2,3);t.GetCount(); //当既有const成员函数又有普通成员函数,类对象是普通对象,优先调用普通成员函数t1.GetCount();t.GetIndex();t1.GetIndex();//cout<<t1.GetSta()<<endl;const CTest t2;t2.GetCount();//t2为const对象,那么只能调用const成员函数t2.GetSta();//t2.GetIndex();//const对象不能调用普通成员函数cout<<&CTest::m_nStatic<<endl;cout<<&t.m_nStatic<<endl;cout<<&t1.m_nStatic<<endl;cout<<&t2.m_nStatic<<endl;cout<<"CTest类对象的大小:"<<sizeof(CTest)<<endl; //输出为8 说明static const int 变量也不是属于类return 0;}
1、只读成员函数:未经const限制的成员函数是普通成员函数。
a)只读成员函数是const置于成员函数右括号之后修饰的成员函数;
b)const成员函数不修改成员变量的数据。
即:成员函数中出现的成员变量仅可以作为右值,不可以做左值;
c) 没有只读的构造函数和析构函数:因为构造函数和析构函数本身就是要对成员操作的;
d)要对成员数据进行设置(Set...类)的函数,不能使用const只读函数;
e)返回值是引用类型的时候,返回的变量是本类的成员时,也不能使用const只读函数;
f)当两个版本并存时,对象优先调用普通的成员函数,
只读的成员函数仅仅用于只读对象(或只读的对象引用)仅仅调用;
e)对象调用只读成员函数时,关键字const本质上约束this形参为只读属性.
注意标红的那句,一般不会注意到这个;
0 0
- 关于只读成员函数
- C++只读成员函数、只读对象
- const只读成员函数与mutable
- 关于函数命名的只读性
- 关于const成员函数
- 关于类隐式成员函数
- 关于 const 成员函数
- 关于静态成员函数
- C#中只读成员
- 关于静态成员和静态成员函数
- 关于c++ const成员函数
- 关于类成员函数指针
- 关于成员函数和有元函数
- 关于函数指针用于类成员函数
- C++ 关于静态成员函数和常成员函数
- 关于静态成员函数和常量成员函数
- 关于C++中的静态成员和静态成员函数
- 关于静态数据成员与静态成员函数的…
- android 给图片加文字水印
- Android内存泄露利器(hprof篇)
- oracle 常用命令
- LeetCode——Swap Nodes in Pairs
- (IT/互联网行业)你给自己当前的职位拼几分?(评分标准,个人看法,勿喷~)
- 关于只读成员函数
- 程序员必须了解的正则表达式——常用正则表达式
- C语言实现泛型编程
- 自定义流读取内存中的SequenceFIle数据
- iOS中引用计数内存管理机制分析
- iOS 消息推送原理
- 循序渐进Java Socket网络编程(多客户端、信息共享、文件传输)
- 日语学习之沪江N4基础 20141119 -2
- Android程序完全退出的三种方法