1.抽象:是一种事物的一般模型。它是一种定义,只包含一类事物的特征,而没有描述事物的具体细节.
数据类型的逻辑属性与其实现细节的这种分离称为数据抽象
2.封装:把对象的过程和数据绑定在一起,对象可以将数据隐藏起来
3.类:是一种定义的数据类型
(1)声名类
(2)访问修饰符 public private protect
public修饰的成员可以在类外访问
private修饰的成员只能在类的内部进行访问
4.对象是类的实例
5.定义成员函数,类的成员函数既可以在类的内部定义,也可以在类的外部定义。在类外不要运算解析符号::
6.类的各种组件
(1)构造函数:创建类对象自动调用的成员函数,用于构造类对象
它的名称与类名相同,不允许由返回值
(2)重载构造函数:可以构建与已存在的构造函数不一样参数的函数。
(3)默认构造函数:没有任何参数,活着给了默认参数的构造函数,都是默认构造函数,但是不能同时存在一个以上的默认构造函数
(4)析构函数:对象被销毁时自动调用
常量引用形参:为了防止返回值被修改,应该使用const修饰符,类的方法要做相应的调整
#include <iostream>
#include<string>
using namespace std;
//定义一个目录类
class InventoryItem{
//属性
private:
int partNum;
string description;
int onHand;
double price;
//方法
public:
void storeInfo(int p,string d,int oH,double cost);
//加const是为了防止属性被外部通过方法获取属性,对属性进行修改
int getPartNum() const {
return partNum;
}
string getDescription() const{
return description;
}
int getOnHand () const
{
return onHand;
}
double getPrice() const{
return price;
}
};
void InventoryItem::storeInfo(int p,string d,int oH,double cost){
partNum = p;
description = d;
onHand = oH;
price = cost;
}
void showValue(const InventoryItem&);
int main(int argc, char** argv) {
InventoryItem one;
one.storeInfo(1,"2",3,4.4);
//测试常量
showValue(one);
return 0;
}
void showValue(const InventoryItem& in){
cout<<in.getDescription()<<endl;
cout<<in.getOnHand()<<endl;
cout<<in.getPartNum()<<endl;
cout<<in.getPrice()<<endl;
}