c++学习——(2)类内定义与内联函数

一.内联函数

1.内联函数的声明:

2,内联函数与普通函数的区别

       建议编译器将指定的函数体插入并取代每一处调用该函数的地方(上下文),从而节省了每次调用函数带来的额外时间开支。但在选择使用内联函数时,必须在程序占用空间和程序执行效率之间进行权衡,因为过多的比较复杂的函数进行内联扩展将带来很大的存储资源开支。另外还需要特别注意的是对递归函数的内联扩展可能引起部分编译器的无穷编译

二.类内定义

1.定义:顾名思义就是在类的里面定义成员函数

2.类内定义与内联函数的联系

一般情况下类内定义的成员函数在编译的过程中被默认为内联函数,那些复杂的函数则编译成普通函数。

 

三.类外定义

1.分类

同文件类外定义:

例子:

#include<iostream>
#include<stdlib.h>
#include<string>
using namespace std;

/****************************************************************/
/*定义一个Teacher类,要求分别采用同文件类外定义
*和分文件类外定义的方式完成,具体要求如下:
*数据成员:
*	名字
*	年龄
*	性别
*成员函数
*	数据成员的封装函数
*	授课teach*/
/****************************************************************/

class Teacher
{
public:
	void setName(string _name);
	string getName();
	void setGender(string _gender);
	string getGender();
	void setAge(int _age);
	int getAge();
	void teach();
private:
	string m_strName;
	string m_strGender;
	int m_iAge;
};
void Teacher::setName(string _name)
{
	m_strName = _name;
}

string Teacher::getName()
{
	return m_strName;
}

void Teacher::setGender(string _gender)
{
	m_strGender = _gender;
}

string Teacher::getGender()
{
	return m_strGender;
}

void Teacher::setAge(int _age)
{
	m_iAge = _age;
}

int Teacher::getAge()
{
	return m_iAge;
}

void Teacher::teach()
{
	cout << "现在上课" << endl;
}
int main(void)
{
	Teacher t;
	t.setName("孔子");
	t.setGender("男");
	t.setAge(30);
	cout << t.getName() <<" "<<t.getGender()<<" "<<t.getAge() <<endl;
	t.teach();
	system("pause");
	return 0;

}

分文件类外定义:

分文件类外定义就不代码演示了,记得类的定义在.h文件中,然后来的成员函数的定义在源文件中就好了。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值