文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>关于常对象成员笔记

关于常对象成员笔记

时间:2010-09-05  来源:jianyuehan

C++中常对象成员包括常成员函数和常数据成员。 1)常成员函数 使用const关键词说明的函数为常成员函数,常成员函数说明格式如下: <类型> <函数名>(<参数列表>) const; 关于常成员函数需要注意的有: a,const是函数类型的一个组成部分,因此在实现的部分也要带const关键词。 b,常成员函数不更新数据成员,也不能调用该类中没有const修饰的成员函数。 c,如果将一个对象说明为常对象,则通过该常对象只能调用它的常成员函数,而不能调用其它成员函数。 d,const关键词可以参与区分重载函数,如void pf(); void pf() const;实施对pf的重载。

#include <iostream>
using namespace std;

class Cn {
 public:
 Cn(int r1,int r2) {ra = r1; rb = r2;}
 void print();
 void print() const; //常成员函数
 private:
 int ra, rb;
};

void Cn::print()
{
 cout<<ra<<","<<rb<<endl;
 cout<<"print()"<<endl;
}

void Cn::print() const //实现部分也要带上const关键词
{
 cout<<ra<<","<<rb<<endl;
 cout<<"print() const"<<endl;
}

int main()
{
 Cn a(5, 8);
 a.print(); //调用void print();
 const Cn b(20, 80); //定义常对象
 b.print(); //只能调用常成员函数void print() const;
 return 0;
}
 


2)常数据成员
如果一个类中说明了常数据成员,那么构造函数就只能通过初始化列表对该数据成员进行初始化。  

#include <iostream>
using namespace std;

class Sample {
    private:
    const int n; //声明常数据成员
    public:
    Sample(int i):n(i) { } //常数据成员只能通过构造函数的初始化列表进行初始化
    void print() { cout<<"n="<<n<<endl; }
};

int main()
{
    Sample a(100);
    a.print();
    return 0;
}

3)静态常数据成员
静态常数据成员的初始化,要在类的外部进行。如在类中有static const int b;其初初始化在类的外进行,为const int B::b = 10;

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载