<span style="font-size:10px;">由于写博客的时间不长,写的不好,敬请谅解,以后会努力。</span>
<span style="font-size:10px;"> ---------备注</span>
重学
c++primer
(
1
)
1.初识类。
在c++中,我们通过定义类来定义自己的数据结构。一个类定义了一个类型,以及与其关联的一组操作。类机制是c++中最重要的特性之一。实际上,c++最初的一个设计焦点是能定义使用上像内置类型一样自然的类类型。
为了使用类。首先了解一下类能干什么?
1.类名是什么?
2.他在哪里定义?
3.它支持什么操作?
其实每个类实际上都定义了一个新类型,其类型名就是类名。比如书上提到的Sales_item类定义了一个名为Sales_item的类型。与内置类型一样。我们可以定义类类型的变量。
Sales_item item;
他表示一个Sales_item类型的对象。除了定义之外,我们还可以干很多事情。比如:
1.调用一个名为Sales_item的函数从一个Sales_item对象中提取isbn书号。
2.用输入运算符和输出运算符读写类型的对象。
3.用赋值运算符将一个Sales_item类的对象的值赋予另一个对象。
4.用加法运算符将两个Sales_item对象相加。
5.使用复合赋值运算符将一个Sales_item对象加到另一个对象里。
下面谈谈类的读写。
先看代码:
<span style="font-size:18px;">#include<iostream>
#include"Sales_item"
using namespace std;
int main()
{
Sales_item book;
cin>>book;
cout<<book<<endl;
return 0;
}
</span>
在main中我们定义了一个名为book的对象,用来保存从标准输入读取的数据。下一条语句读取数据存入对象中,第三条语句将对象打印到标准输出上并打印一个endl。
然后是加法。
<span style="font-size:18px;">#include<iostream>
#include"Sales_item"
using namespace std;
int main()
{
Sales_item item1,item2;
cin>>item1>>item2;
cout<<item1+item2<<endl;
return 0;
}
</span>
我们定义了两个类的对象来保存销售记录,我们从标准输入读取数据,存入两个对象中,输入表达式完成加法运算并打印结果。
顺便说下文件重定向的问题。
现在大多数操作系统都支持文件重定向,这种机制容许我们将标准输入和标准输出和命名文件关联起来。
在unix命令行为:$ additems <infile> outfile
2 初识成员函数
<span style="font-size:18px;">#include<iostream>
#include"Sales_item"
using namespace std;
int main()
{
Sales_item item1,item2;
cin>>item1>>item2;
if(item1.isbn()==item.isbn())
{
cout<<item1+item2<<endl;}
else{
cerr<<"data must refer to same isbn"<<endl;
return -1;
}
}
</span>
这个程序中的if语句的检测条件为
<span style="font-size:18px;">item1.isbn()==item.isbn()</span>
调用名为isbn的成员函数,成员函数为定义类的一部分的函数。有时也称为方法。我们通常以类对象的名义调用成员函数,使用点运算符来表达我们需要名为item1的对象的isbn的成员。点运算符只能用类类型的对象,其左侧运算对象必须是一个类类型的对象,右侧运算符是该类型的一个成员名,运算结果为右侧运算对象指定的成员。
当用点运算符访问一个成员函数时,我们使用调用运算符来调用一个函数。调用运算符时一对圆括号,里面放置实参列表。成员函数isbn并不是接受参数。