C++学习笔记:类的成员函数的声明与定义
今天学习一下类的成员函数,首先讲一下常规的类外的函数
写在类的外部的函数叫做全局函数,不属于任何的类。
如果写在类的里面就叫做类的成员函数
这里注意的是,类的成员函数如果加了const,就表明该函数不能对该类的成员数据进行任何的修改,一旦修改就会报错,称之为常函数。反之可以修改。如下
public:
bool same_isbn(const Sales_item &rhs) const//不能修改成员函数,但是可以调用
{
return isbn == rhs.isbn;//isbn就是代表当前对象的书号,传入的isbn是作为参数的另外一个对象的书号
}
那么类的成员函数可以定义在类的外部么?
答案是肯定的!!
如果我们想把类的成员函数定义在外面,则需要事先在类的内部声明好该函数,举例如下
class Sales_item
{
public:
std::string isbn;//书号
unsigned units_sold;//数量
double revenue;//销售额
public:
double avr_price() const;//函数声明在类的内部
bool same_isbn(const Sales_item &rhs) const//不能修改成员函数,但是可以调用
{
return isbn == rhs.isbn;//isbn就是代表当前对象的书号,传入的isbn是作为参数的另外一个对象的书号
}
};
double Sales_item::avr_price() const//定义在类的外部
{
}
但是需要注意的是,在类的外部定义类的成员函数的时候需要在函数的名称前加上“::”,再在前面加上类的名称,其中“::”称为范围解析,表示该函数属于这个类
一般类的成员函数声明都写在类的内部,函数的定义都写到外面。这样会使得类的结构看起来很整洁。
总体的练习代码如下:
#include<iostream>
#include<string>
#include<stdlib.h>
using namespace std;
//销售项目
int sum(int x, int y)
{
return x + y;
}
class Sales_item
{
public:
std::string isbn;//书号
unsigned units_sold;//数量
double revenue;//销售额
public:
double avr_price() const;//函数声明在类的内部
bool same_isbn(const Sales_item &rhs) const//不能修改成员函数,但是可以调用
{
return isbn == rhs.isbn;//isbn就是代表当前对象的书号,传入的isbn是作为参数的另外一个对象的书号
}
};
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");
}
最后,给大家一些类的代码书写方面的建议,为了代码整体的美观和方便类的调用,因此一般将类的定义都写在头文件中,类的成员函数的声明在类中,函数的具体的定义都写在Cpp源码文件中,然后包含类定义的头文件包含进来,这样既美观易懂,而且也方便添加新的成员函数。
————————————————
版权声明:本文为CSDN博主「wD丶路人」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Peter_Red_Boy/article/details/90004417
C++学习笔记:类的成员函数的声明与定义相关推荐
- 类的成员函数 只声明 不定义
#include <iostream> class A{ public: void f(); private: void g(); }; int main() { A a; return ...
- 【Python学习笔记】第八章 函数
[Python学习笔记]第八章 函数 文章目录 [Python学习笔记]第八章 函数 前言 8.1 定义函数 8.2 调用函数 8.2.1 使用位置参数调用函数 8.2.2 使用关键字参数调用函数 8 ...
- 静态成员变量与静态成员函数的声明与定义
类的静态成员变量在类中只能声明,定义和初始化要在类外: class Myclass { private: static int a; // 类内声明 } int Myclass::a = 10; // ...
- C++模板学习02(类模板)(类模板语法、类模板与函数模板的区别、类模板中的成员函数创建时机、类模板对象做函数参数、类模板与继承、类模板成员函数类外实现、类模板分文件编写、类模板与友元)
C++引用详情(引用的基本语法,注意事项,做函数的参数以及引用的本质,常量引用) 函数高级C++(函数的默认参数,函数的占位参数,函数重载的基本语法以及注意事项) C++类和对象-封装(属性和行为作为 ...
- C++提高部分_C++类模板成员函数类外实现---C++语言工作笔记092
然后我们再来说,类模板成员函数的类外实现 上面我们写一个Person类,然后 类模板template 然后写一个Person构造方法,然后,写一个showPerson方法 然后后面我们要用字符串,我们 ...
- C++ 学习笔记----类篇
(一)基本概念: 1.类与对象: 1 //声明类 2 class Human { 3 4 //... Data members and methods go here 5 6 }; 7 8 //定义对 ...
- 《Go语言圣经》学习笔记 第五章函数
<Go语言圣经>学习笔记 第五章 函数 目录 函数声明 递归 多返回值 匿名函数 可变参数 Deferred函数 Panic异常 Recover捕获异常 注:学习<Go语言圣经> ...
- 类的成员函数指针(比较深入)
From:http://blog.csdn.net/hairetz/archive/2009/05/06/4153252.aspx 个人感觉对于类的成员函数指针这块讲解的比较深入详细 推荐阅读 / 先 ...
- 【C++学习笔记】 纯虚函数详解,绝不纯属虚构!
首先:强调一个概念 定义一个函数为虚函数,不代表函数为不被实现的函数. 定义他为虚函数是为了允许用基类的指针来调用子类的这个函数. 定义一个函数为纯虚函数,才代表函数没有被实现. 定义纯虚函数是为了实 ...
最新文章
- wxwidgets mysql_wxWidgets导入Excel文件详细教程
- 启动转换安装失败 拷贝windows安装文件时出错_系统小技巧:“徒手”创建可启动的VHD系统...
- shell-----函数库调用
- 设计模式21:State 状态模式(行为型模式)
- AC自动机——多个kmp匹配
- 从后台获取的数据渲染到页面中的dom操作
- 参与全国软考调查问卷,赢精彩大奖
- android 通过platform.pk8,platform.x509.pem生成jks签名文件
- Win10 没有激活,如何改变任务栏位置
- 计算机装系统教程网,电脑重装系统教程知识
- SpringMvc+饿了么UI组件+七牛云做图片上传
- Python+CV2实现黑色背景的旋转图片矫正回水平图片
- 程序员白piao服务器。大派送
- Java JSON格式简介说明
- 利用“顺丰速运”下发GuLoader恶意软件的风险分析
- 使用css3和h5实现幻灯片,点击切换图片效果
- 十进制逢十进一的意思
- Nginx部署静态资源
- angular4前后端分离_使用Angular v4的新HTTP客户端
- tomcat 服务器访问日志配置方法
热门文章
- 《OpenGL超级宝典》编程环境配置
- 阿呆做网站(3)--建数据库
- 【Python数据挖掘课程】六.Numpy、Pandas和Matplotlib包基础知识
- iOS之深入解析WKWebView的坑点收录和优化处理
- iOS基础知识(面试必备)
- G6 图可视化引擎——入门教程——插件与工具
- 《算法竞赛入门经典》 例题3-5 生成元 (Digit Generator, ACM ICPC Seoul 2005,UVa)
- 解决:AttributeError: module 'pygal' has no attribute 'Worldmap' 问题
- 【计算机类】大学生计算机专业电子书汇总
- matlab搭建sdn,软件定义网络SDN简介和简单仿真实验