C++学习笔记:类的成员函数的声明与定义

本文详细介绍了C++中类的成员函数概念,包括其与全局函数的区别,如何在类内声明并在类外定义成员函数,以及常成员函数的特点。通过实例演示了成员函数在实际编程中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天学习一下类的成员函数,首先讲一下常规的类外的函数

写在类的外部的函数叫做全局函数,不属于任何的类。
如果写在类的里面就叫做类的成员函数

这里注意的是,类的成员函数如果加了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源码文件中,然后包含类定义的头文件包含进来,这样既美观易懂,而且也方便添加新的成员函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值