
本文共 1797 字,大约阅读时间需要 5 分钟。
今天学习一下类的成员函数,首先讲一下常规的类外的函数
写在类的外部的函数叫做全局函数,不属于任何的类。
如果写在类的里面就叫做类的成员函数这里注意的是,类的成员函数如果加了const,就表明该函数不能对该类的成员数据进行任何的修改,一旦修改就会报错,称之为常函数。反之可以修改。如下
public:
bool same_isbn(const Sales_item &rhs) const//不能修改成员函数,但是可以调用 { return isbn == rhs.isbn;//isbn就是代表当前对象的书号,传入的isbn是作为参数的另外一个对象的书号 }
那么类的成员函数可以定义在类的外部么?
答案是肯定的!! 如果我们想把类的成员函数定义在外面,则需要事先在类的内部声明好该函数,举例如下class Sales_item
{ public: std::string isbn;//书号 unsigned units_sold;//数量 double revenue;//销售额public:
double avr_price() const;//函数声明在类的内部bool same_isbn(const Sales_item &rhs) const//不能修改成员函数,但是可以调用
{ return isbn == rhs.isbn;//isbn就是代表当前对象的书号,传入的isbn是作为参数的另外一个对象的书号 } };double Sales_item::avr_price() const//定义在类的外部
{ }
但是需要注意的是,在类的外部定义类的成员函数的时候需要在函数的名称前加上“::”,再在前面加上类的名称,其中“::”称为范围解析,表示该函数属于这个类
一般类的成员函数声明都写在类的内部,函数的定义都写到外面。这样会使得类的结构看起来很整洁。
总体的练习代码如下:
#include<iostream>
#include<string> #include<stdlib.h> using namespace std; //销售项目 int sum(int x, int y) { return x + y; }class Sales_item
{ public: std::string isbn;//书号 unsigned units_sold;//数量 double revenue;//销售额public:
double avr_price() const;//函数声明在类的内部bool same_isbn(const Sales_item &rhs) const//不能修改成员函数,但是可以调用
{ return isbn == rhs.isbn;//isbn就是代表当前对象的书号,传入的isbn是作为参数的另外一个对象的书号 } };double Sales_item::avr_price() const//定义在类的外部
{ }int main()
{ Sales_item item1, item2; item1.isbn = "45646-78786"; item1.units_sold = 10; item1.revenue = 300;item2.isbn = "45646-786";
item2.units_sold = 2; item2.revenue = 70;if (item1.same_isbn(item2))
cout << "这两个是相同的书 "; else cout << "这两个是不同的书 "; system("pause"); }
最后,给大家一些类的代码书写方面的建议,为了代码整体的美观和方便类的调用,因此一般将类的定义都写在头文件中,类的成员函数的声明在类中,函数的具体的定义都写在Cpp源码文件中,然后包含类定义的头文件包含进来,这样既美观易懂,而且也方便添加新的成员函数。
————————————————
版权声明:本文为CSDN博主「wD丶路人」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/Peter_Red_Boy/article/details/90004417发表评论
最新留言
关于作者
