1、程序=数据结构+算法;
class retangle //一个类
{
public:
int w, h;
void init(int w_, int h_)//初始化
{
w = w_; h= h_;
}
int area()//面积
{
return w*h;
}
int perimeter()//周长
{
return 2 * (w + h);
}
};//必须有分号
int main()
{
int w, h;
retangle r;//r是一个对象
cin >> w >> h;
r.init(w, h);
cout << r.area() << endl << r.perimeter();
return 0;
}//类定义的变量,,,类的实例,,,对象
每个对象各有自己的存储空间,对象的大小=所有成员变量大小之和。2、访问类的成员变量和成员函数
#include <iostream>
#include "Sales_item.h"
int main()
{
Sales_item item1,item2;
std::cin >> item1>>item2;
if (item1.isbn() == item2.isbn())
{
std::cout << item1 + item2 << std::endl;
return 0;
}
else
{
std::cerr << "Data must refer to same ISBN" << std::endl;
return -1;
}
}
item1.isbn()==item2.isbn() 调用名为isbn的成员函数。
2.1 对象名.成员名
reatangle r1, r2;
r1.w = 5;
r2.Init(3, 4);
2.2指针->成员名
rectangle r1, r2;
rectangle *p1 = &r1;//定义指针
rectangle *p2 = &r2;
p1->w = 5;
p2->init(3,4)//init作用在p2指向的对象上
2.3引用名.成员名
rectangle r1;
retangle &rr = r2;//引用作为别名
rr.w = 5;
rr.init(3, 4);
3、处理类型
3.1类型别名
它是某款类型的别名,两种方法定义类型别名
typedef double wages //wages是double 的别名
typedef wages base, *p //base是double的同义词,p是double*的同义词
using SI=Sale_itm //SI是sale_itm的同义词
如果类型别名指代得是复合类型或常量,不能把类型别名替换成它原本的样子,这样是错误的!!
typedef char *pstring;//pstring是char*的别名
const pstring cstr = 0; //cstr是指向char的常量指针
const pstring *ps; //ps 是一个指针,他的对象是指向char的常量指针
//const pstring 是指向char 的常量指针,而不是指向常量字符的指针
const char *cstr=0//这是错误的!!! 意味着指向const char 的指针
3.2 auto类型说明符
让编译器替我们去分析表达式所属的类型
auto item = val1 + val2;
auto sz = 0, pi = 3.14;//错误,sz 和 pi的类型不一样