这里有几个案例来快速了解 类
//案例一 设计立方体类(cuba) 求出立方体的体积和面积
// 判断两个立方体是否相等(全局函数)
#include <iostream>
using namespace std;
class cuba
{
private : // 私有成员
int m_a;
int m_b;
int m_c;
int m_s;
int m_v;
public :
double get_a()
{
return m_a;
}
double get_b()
{
return m_b;
}
double get_c()
{
return m_c;
}
void set_a(int a) // 给变量赋值
{
m_a = a;
}
void set_b(int b)
{
m_b = b;
}
void set_c(int c)
{
m_c = c;
}
void set_abc(int a, int b, int c)
{
m_a = a;
m_b = b;
m_c = c;
}
public:
int get_s()
{
m_s = 2*((m_a * m_b) + (m_a * m_c) +(m_b * m_c ));
return m_s;
}
int get_v()
{
m_v = m_a * m_b * m_c;
return m_v;
}
int judecuba(cuba &c1, cuba & c2) // c1太多了
{
if ( (c1.m_a == c2.m_b) &&
(c1.m_b == c2.m_b) &&
(c1.m_c == c2.m_c)
)
return 1;
else
return 0;
}
//函数调用 去执行c1对象的成员judecuba
// 因为此函数是类内函数 所以可以用c2.m_a对比全局函数
int judecuba(cuba &c2) // 成员函数,函数重载
{
// 好多人分不清m_a是属于c1,还是c2
// 谁调用就是谁的
if( (m_a == c2.m_b) &&
(m_b == c2.m_b) &&
(m_c == c2.m_c)
)
return 1;
else
return 0;
return 0;
}
};
// 全局函数pk成员函数
// 全局函数
// 只是定义了面向对象的方法 但是没有用
int judecuba3(cuba &c1, cuba &c2) // 不能直接访问私有成员 通过定义get函数来间接访问
{
// 特别注意因为此函数是类外函数所以不能用c1.m_a 通过定义get函数来间接访问
if( (c1.get_a() == c2.get_a()) &&
(c1.get_b() == c2.get_b()) &&
(c1.get_c() == c2.get_c())
)
return 1;
else
return 0;
}
// 全局函数调用方法
int main()
{
cuba c1, c2;
c1.set_abc(1, 2, 3);
c2.set_abc(1, 2, 4);
if ( judecuba3(c1, c2) )
{
cout << "c1 == c2" << endl;
}
else
cout << "c1 != c2" << endl;
return 0;
}
// 成员函数调用方法
int main2()
{
cuba c1, c2;
c1.set_abc(1, 2, 3);
c2.set_abc(1, 2, 4);
// 判断立方体是否相等 通过调用类的成员函数
int judge = c1.judecuba(c2); // 这种比较好
if (judge)
{
cout << "c1 == c2" << endl;
}
else
cout << "c1 != c2" << endl;
//冗余 c1
if ( c1.judecuba(c1, c2) ) // c1 太多了
{
cout << "c1 == c2" << endl;
}
else
cout << "c1 != c2" << endl;
if ( judecuba3(c1, c2) )
{
cout << "c1 == c2" << endl;
}
else
cout << "c1 != c2" << endl;
return 0;
}
// 求面积
int main1() // 求立方体的体积和面积
{
cuba c1, c2;
c1.set_abc(1, 2, 3);
cout << "s = " <<c1.get_s()<< endl;
cout << "v = " << c1.get_v()<< endl;
return 0;
}
点与圆的关系
#include <iostream>
using namespace std;
class point
{
private:
int x1;
int y1;
public:
void setpoint(int x, int y)
{
x1 = x;
y1 = y;
}
int get_x() // 接口函数 用来访问私有成员
{
return x1;
}
int get_y()
{
return y1;
}
};
class Circle
{
private:
int x0;
int y0;
int r;
public:
void setcircle(int x, int y, int r1)
{
x0 = x;
y0 = y;
r = r1;
}
public:
int jude(point &p1)
{
// 点的成员是私有的不能让jude函数(类外部函数)访问,所以用一个接口函数来访问
// 此函数使用c1调用的 而且jude还是圆类的内部函数,可以直接访问但是不能加c1.x0
int d = (p1.get_x() - x0) * (p1.get_x() - x0) +
(p1.get_y() - y0) * (p1.get_y() - y0);
cout << "d^2 = " << d*d << endl;
cout << "r = " << r << endl;
if (d <= r*r)
{
return 1; // 在圆内
}
else
return 0; // 在圆外
}
};
int main()
{
Circle c1;
point p1;
c1.setcircle(1,1,2);
p1.setpoint(2,2);
int tag = c1.jude(p1);
if (tag == 1)
{
cout << "点在圆内" << endl;
}
else
cout <<"点在圆外" << endl;
return 0;
}
因为初学C++ 有些的不对的请指教 构造函数就不写了(目前学得不好怕误导大家)