自学C++(六)//成员函数的声明和定义//内联函数//const成员函数

成员函数的声明和定义

声明:

声明部分紧是说明该函数的参数类型以及返回值类型。
如 void set(int w)

定义:

函数定义部分则是对功能部门的实现
如:void set(int w)

cout<<w<<endl;


成员函数的定义只需要加上类名以及双冒号,其他保持不变

void Human::set(int w)
{
需要实现的内容;
}
实例:
#include<iostream>
using namespace std;
class Human
{
	public:
		void set(int );//类成员函数的声明 
		int print(){
			return weight;
		}
	private:
		int weight;
};
int main()
{
	Human Tom;
	Tom.set(90);
	cout<<"Tom的体重为:"<<Tom.print()<<endl;
	Human Mike;
	Mike.set(111);
	cout<<"Mike的体重为:"<<Mike.print()<<endl;
	return 0;
}
void Human::set(int w)//类成员函数的声明 
{
	if(w>0&&w<100)
	weight=w;
	else
	{
		cout<<"请将set里面的参数设置为0-100以内的数字,否则默认设置为0"<<endl;
		weight=0; 
	}
}

输入结果:
在这里插入图片描述

内联函数:

普通内联函数:

在这里插入图片描述

#include<iostream>
using namespace std;
inline int func(int);//使用inline将带有一个int变量并返回int值的函数
/*func说明为内联函数*/
int main()
{
	int x;
	cout<<"请输入一个数字:"<<endl;
	cin>>x;//将输入的数字保留在x变量当中 
	cout<<"\n";
	cout<<"输入的数字是:"<<func(x)<<endl;
	/*将该变量作为参数传递到函数func(x)当中,由于该函数是内联函数,
	它的所有代码都直接复制在该行的func(x)处,因此这里不会跳转到第17行去执行func函数体重的语句*/
	return 0 ;
	
 } 
 int func(int x)//17行 
 {
 	return x;//该行代码会直接被复制到 cout<<"输入的数字是:"<<func(x)<<endl;fuc(x)处 
 }
 
成员内联函数:
#include<iostream>
using namespace std;
class A
{
	public:
		inline void fuc(int ,int);//将fuc设置为内联函数 
		inline void print();将print设置为内联函数 
	private:
		int i,j;
};
int main()
{
	A a;
	a.fuc(3,2);//调用内联函数相当于之间在这将i=3,j=2写在这里 
	a.print();//调用print()内联函数等于将 cout<<"i*j is:"<<i*j<<endl;直接写在这里 
	
}
void  A::fuc(int x,int y)
{
	i=x;
	j=y;
}//fuc定义部分 
void  A::print()
{
	cout<<"i*j is:"<<i*j<<endl;
}//print定义部分

在这里插入图片描述

#include<iostream>
using namespace std;
class A
{
	public:
		inline void fuc(int x,int y){i=x;j=y;}//将fuc设置为内联函数 
		inline void print(){cout<<"i*j is:"<<i*j<<endl;}将print设置为内联函数 
	private:
		int i,j;
};
int main()
{
	A a;
	a.fuc(3,2);//调用内联函数相当于之间在这将i=3,j=2写在这里 
	a.print();//调用print()内联函数等于将 cout<<"i*j is:"<<i*j<<endl;直接写在这里 
	
}

为什么将成员函数的声明和定义分开:

在这里插入图片描述

将类声明和定义部分保存在头头文件中:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

William_Tao(攻城狮)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值