用法一:对象名.成员名
#include <iostream>
using namespace std;
class crectangle
{
public:
int w, h;//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 w1, h1;
cin >> w1 >> h1;
crectangle r;//r是一个对象
r.Init(w1, h1);//调用Init成员函数
//r.Init说明Init函数作用在r对象上面,即进入Init成员函数中,w1和h1都是属于r这个对象,
//也说明这个成员函数会影响r里面的w1和h1
cout << r.area() << endl << r.perimeter();
return 0;
}
用法二:指针—>成员名
#include <iostream>
using namespace std;
class crectangle
{
public:
int w, h;//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;
crectangle r1,r2;
crectangle* p1 = &r1;
crectangle* p2 = &r2;
p1->w = 5;//给r1中的w赋值为5,h赋值为6
p1->h = 6;
p2->Init(6, 7);//Init作用在p2指向的对象上,即r2
cout << r1.area() << endl << r1.perimeter()<<endl;
cout << r2.area() << endl << r2.perimeter();
return 0;
}
用法三:引用名.成员名
int main()
{
int w, h;
crectangle r1;
crectangle& rr = r1;//rr引用了r1,所以rr和r1实际上是同一个东西
rr.w = 5;//rr的值变了,r1的值也变了
rr.Init(5, 4);
cout << r1.area() << endl << r1.perimeter() << endl;
}