C/C++中类的声明和定义

本文详细介绍了C++中类的定义与使用,包括类的声明、构造函数、常量成员函数等内容,并提供了具体的代码示例。

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

1.类的声明和定义

以类Sales_item的定义来举例说明:

//Sales_item.h文件
//类Sales_item的声明
class Sales_item {
public:
	//类Sales_item的构造函数
	Sales_item(): units_sold(0), revenue(0.0) {}
	//类成员函数avg_price的声明
	double avg_price() const;
	//类成员函数same_isbn的声明和定义
	bool same_isbn(const Sales_item &rhs) const
	{
		return isbn == rhs.same_isbn;
	}

private:
	std::string isbn;
	unsigned units_sold;
	double revenue;
};  //注意此处有分号;哦

//Sales_item.cpp文件
//在类定义体外定义类Sales_item的成员函数avg_price
double Sales_item::avg_price() const
{
	if(units_sold)
		return revenue/units_sold;
	else
		return 0;
}  //类成员函数的定义外没有分号;哦

类的所有成员都必须在类定义的花括号里面声明,此后,就不能再为类增加任何成员。类的成员函数即可以在类的定义内定义也可以在类的定义外定义。编译器隐式地将在类内定义的成员函数当作内联函数。

 

2.关于类的构造函数

       构造函数是特殊的成员函数,与其他成员函数不同的是,构造函数和类同名,而且没有返回类型。与其他成员函数相同的是,构造函数也有形参表(可能为空)和函数体。

        一个类可以有多个构造函数,每个构造函数必须有与其他构造函数不同数据或类型的形参。对于没有形参的构造函数我们称为默认构造函数,那么定义对象时,如果没有指明实参,就会调用默认的构造函数。

        值得注意的是,如果我们没有显式地定义默认构造函数,编译器会自动为这个类生成默认构造函数,这个自动生成的默认构造函数,就会按照一定的初始化规则来初始化类中的成员。

       构造函数与其他函数一样,具有名字、形参表和函数体,但是构造函数可以包含一个构造函数初始化列表。构造函数初始化列表以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个数据成员后面跟一个放在圆括号中的初始化式。举例如下:

Sales_item():units_sold(0), revenue(0.0) {}<span style="font-family: SimSun; font-size: 10.5pt; background-color: rgb(255, 255, 255);"> </span>


3.常量成员函数

在成员函数的形参表后加上关键字const后,就可以将成员函数声明为常量成员函数。在常量成员函数中,不能对对象中成员变量进行修改。

double avg_price() const;

4.定义类对象

Sales_item item;
class Sales_item item;  //和结构体的变量的定义是一样的
两种方法是等价的,其中第二种是从C继承过来的。

5.类代码的文件组织

在实际编码中,通常将类的声明放置在头文件中。大多数情况下,在类外定义的成员函数则置于源文件中。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值