C++类的定义模板

C++是在C语言基础上发展而来的,但引入了面向对象编程的特性,因而有了“类”的特性。本篇介绍C++的类如何定义。

/*
* Author:W;
* 类
* 1.类的属性
* 2.类的函数
* 1)构造函数:默认、带参以及拷贝
* 2)析构函数:类的对象销毁时执行;
* 3)普通函数:
* 4)友元函数:不是类的成员函数,定义在类外部,但有权访问类的所有私有(private)成员和保护(protected)成员。
* 5)内联函数:牺牲空间换取访问效率
* 3.静态成员:
* 1)静态属性:不能把静态成员的初始化放置在类的定义中,但是可以在类的外部通过使用范围解析运算符 :: 来重新声明静态变量从而对它进行初始化
* 2)静态函数:只要使用类名加范围解析运算符 :: 就可以访问。静态成员函数只能访问静态成员数据、其他静态成员函数和类外部的其他函数。
*/

//引入头文件:头文件包含了程序中必需的或有用的信息
#include <iostream>

using namespace std;

/*类的定义*/
class Box 
{
 public:
	 //静态属性
	 static int count;
	 //静态函数
	 static int getCount();

	 //默认构造函数
	 Box();
	 //带参数构造函数
	 Box(float w,float h);
	 //拷贝构造函数:它在创建对象时,是使用同一类中之前创建的对象来初始化新创建的对象。
	 Box(const Box& obj);

	 //析构函数:在对象销毁时执行
	 ~Box();

	 //友元函数
	 friend void printInfo(Box box);

	 //方法1:在类外使用"::"范围解析运算符来定义
	 void setWidth(float width);
	 void setHeigth(float height);
	 //方法2:在函数声明时,直接定义
	 float GetVolume()
	 {
		 return width * height;
	 }



 private:
	 float width;
	 float height;	
};

//静态属性初始化
int Box::count = 5;

//静态函数定义
int Box::getCount()
{
	return count;
}

//默认构造函数
Box::Box()
{
	cout << "Box 默认构造函数" << endl;
}

//带参构造函数
Box::Box(float w, float h)
{
	cout << "Box 带参数构造函数" << endl;
	width = w;
	height = h;
}

//拷贝构造函数
Box::Box(const Box& obj)
{
	cout << "Box 拷贝构造函数" << endl;
	width = obj.width;
	height = obj.height;
}

//析构函数(销毁时执行)
Box::~Box()
{
	cout << "Box 对象销毁时执行" << endl;
}

//设置宽度
void Box::setWidth(float wid)
{
	width = wid;
}

//设置高度
void Box::setHeigth(float hei)
{
	height = hei;
}

//友元函数:打印信息
void printInfo(Box box)
{
	cout << "友元函数 printInfo 访问private和protected成员 box.width=" << box.width << " box.height=" << box.height << endl;
}

//main程序执行入口函数
int main()
{	
	Box box;
	box.setWidth(3);
	box.setHeigth(5);
	cout << "1.Box的面积 S = " << box.GetVolume() << endl;

	Box box2(2, 7);
	cout << "2.Box2的面积 S= " << box2.GetVolume() << endl;

	Box box3 = box;
	cout << "3.Box3的面积 S= " << box3.GetVolume() << endl;

	//友元函数调用
	printInfo(box);

	//静态函数调用
	cout << "Box 静态函数 getCount = " << Box::getCount() << endl;
}


运行结果如下:

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Data菌

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

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

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

打赏作者

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

抵扣说明:

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

余额充值