c++系列文章目录
提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
第六章 c++学习入门之类的使用
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
c++中类是什么?
类的思想为:数据抽象和封装 分离的编程。
使用类定义自己的数据类型。
数据抽象:依赖于接口(interface),即用户能执行的操作和实现(implementation),即类的数据成员,负责接口实现的函数体和定义类所需的各种私有函数。
封装:实现类的接口和实现分离。
一、定义抽象数据类型
SalesItem是一个抽象类,可以通过SalesItem的接口来使用一个SalasItem对象。
不能访问以及不知道SalesItem对象的数据成员。
然而,SalesData类不是一个抽象类,它天生就是由用户来编写操作,为了能编写操作,其所有数据成员可以使用。
(如果想把SalesItem变成抽象类,可以定义一些操作给类的用户使用,然后封装(隐藏)数据成员。)
1.1设计SalesData抽象类
SalseData类的接口应该包括操作:
1.一个ISBN()成员函数,用于返回对象的ISBN号;
2.一个combine()成员函数,用于将一个SalesData对象加到另一个对象上;
3.一个名为add()的函数,执行两个SalesData对象的加法;
4.一个read()函数,将数据从istream中读入到SalesData对象中;
5.一个print()函数,将SalesData对象输出到ostream;
假设类已定义好,如何使用上述5个接口函数,
比如,使用这些接口函数编写一个书店程序。
#include<iostream>
#include"SalesData.h"
using namespace std;
int main(){
//instantiate a class,store current variable of sum result
SalesData total;
// read first trade
if(read(cin,total)){
//store next trade
SalesData trans;
//read other trade
while(read(cin,trans)){
//compare two book's isbn
if(total.isbn()==trans.isbn()){
//update current total,add trans to tatal
total.combine(trans);
}
//two book's isbn difference
else{
//input current book's total
print(cout,total) << endl;
//process next book
total = trans;
}
}
// input last trade
print(cout,total)<<endl;
}
//not data input at all
else{
//inform user
cerr<<"NO data?!"<<endl;
}
}
1.2 定义SalesData类
类属于头文件,要以.h结束,
格式为:
#ifndef NAME_H
#define NAME_H
//源码
#endif
类声明时,为
class name{ //代码体 };代码体;
成员数据包括:
ISBN编号:string bookNo;
本书销量: unsigned int unitsSold;
总销售收入:double revenue;
成员函数包括:
combine();
isbn();
非接口函数 avgPrice();
成员函数声明必须在内部,定义在内部或外部都可以,
作为接口组成的非成员函数,声明和定义都在类外部,如add,print,read。
1.3构造函数
constructor:初始化类对象的数据成员。
只要类的对象被创建,类就会执行构造函数。
构造函数名字和类名相同,没有返回类型。
可以有多个(需重载)。
定义构造函数,
1.一个istream&,从中读取一条交易信息,
2.一个string &,表示isbn编号;一个unsigned int,表示图书数量;一个double,表示图书售价,
//string isbn,unsigned int unitsSold,double p
sales_data(string &s,unsigned int num,double p):bookNo(s),unitsSold(num),revenue(p*num) {}
3.一个string &,表示isbn编号,编译器将赋予其他成员默认值,
//a string present isbn,other variable default
sales_data(string &s) :bookNo(s) {}
4.一个空参数列表(即默认构造函数),
//no param list,default constructor
sales_data()=default;
二.访问控制与封装
三.类的其他特性
四.类的作用域
五.构造函数
六.类的静态成员
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。