C++学习笔记:类的成员函数的声明与定义
今天學(xué)習(xí)一下類的成員函數(shù),首先講一下常規(guī)的類外的函數(shù)
寫在類的外部的函數(shù)叫做全局函數(shù),不屬于任何的類。
如果寫在類的里面就叫做類的成員函數(shù)
這里注意的是,類的成員函數(shù)如果加了const,就表明該函數(shù)不能對該類的成員數(shù)據(jù)進(jìn)行任何的修改,一旦修改就會報(bào)錯,稱之為常函數(shù)。反之可以修改。如下
public:
?? ?bool same_isbn(const Sales_item &rhs) const//不能修改成員函數(shù),但是可以調(diào)用
?? ?{
?? ??? ?return isbn == rhs.isbn;//isbn就是代表當(dāng)前對象的書號,傳入的isbn是作為參數(shù)的另外一個對象的書號
?? ?}
?
那么類的成員函數(shù)可以定義在類的外部么?
答案是肯定的!!
如果我們想把類的成員函數(shù)定義在外面,則需要事先在類的內(nèi)部聲明好該函數(shù),舉例如下
class Sales_item
{
public:
?? ?std::string isbn;//書號
?? ?unsigned? units_sold;//數(shù)量
?? ?double revenue;//銷售額
public:
?? ?double avr_price() const;//函數(shù)聲明在類的內(nèi)部
?? ?bool same_isbn(const Sales_item &rhs) const//不能修改成員函數(shù),但是可以調(diào)用
?? ?{
?? ??? ?return isbn == rhs.isbn;//isbn就是代表當(dāng)前對象的書號,傳入的isbn是作為參數(shù)的另外一個對象的書號
?? ?}
};
double Sales_item::avr_price() const//定義在類的外部
{
}
??
但是需要注意的是,在類的外部定義類的成員函數(shù)的時候需要在函數(shù)的名稱前加上“::”,再在前面加上類的名稱,其中“::”稱為范圍解析,表示該函數(shù)屬于這個類
一般類的成員函數(shù)聲明都寫在類的內(nèi)部,函數(shù)的定義都寫到外面。這樣會使得類的結(jié)構(gòu)看起來很整潔。
總體的練習(xí)代碼如下:
#include<iostream>
#include<string>
#include<stdlib.h>
using namespace std;
//銷售項(xiàng)目
int sum(int x, int y)
{
?? ?return x + y;
}
class Sales_item
{
public:
?? ?std::string isbn;//書號
?? ?unsigned? units_sold;//數(shù)量
?? ?double revenue;//銷售額
public:
?? ?double avr_price() const;//函數(shù)聲明在類的內(nèi)部
?? ?bool same_isbn(const Sales_item &rhs) const//不能修改成員函數(shù),但是可以調(diào)用
?? ?{
?? ??? ?return isbn == rhs.isbn;//isbn就是代表當(dāng)前對象的書號,傳入的isbn是作為參數(shù)的另外一個對象的書號
?? ?}
};
double Sales_item::avr_price() const//定義在類的外部
{
}
int main()
{
?? ?Sales_item item1, item2;
?? ?item1.isbn = "45646-78786";
?? ?item1.units_sold = 10;
?? ?item1.revenue = 300;
?? ?item2.isbn = "45646-786";
?? ?item2.units_sold = 2;
?? ?item2.revenue = 70;
?? ?if (item1.same_isbn(item2))
?? ??? ?cout << "這兩個是相同的書 ";
?? ?else
?? ??? ?cout << "這兩個是不同的書 ";
?? ?system("pause");
}
??
最后,給大家一些類的代碼書寫方面的建議,為了代碼整體的美觀和方便類的調(diào)用,因此一般將類的定義都寫在頭文件中,類的成員函數(shù)的聲明在類中,函數(shù)的具體的定義都寫在Cpp源碼文件中,然后包含類定義的頭文件包含進(jìn)來,這樣既美觀易懂,而且也方便添加新的成員函數(shù)。
————————————————
版權(quán)聲明:本文為CSDN博主「wD丶路人」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/Peter_Red_Boy/article/details/90004417
總結(jié)
以上是生活随笔為你收集整理的C++学习笔记:类的成员函数的声明与定义的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: centos7设置、查看、删除环境变量的
- 下一篇: C++中的const成员函数(函数声明后