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

您所在的位置:网站首页 c加加类是什么 C/C++中类的声明和定义

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

2024-07-02 20:52| 来源: 网络整理| 查看: 265

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) {} 

3.常量成员函数

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

double avg_price() const;

4.定义类对象

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

5.类代码的文件组织

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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3