这里说一下我一开始犯的错误 在这一步是我头文件创建的是cpp,导致后面一直报错,我还不知道错在哪,简直哭唧唧!!! 以点跟圆的关系为例 创建了一个圆类和点类(请不要学我不会英语打拼音,我是英语渣渣呜呜呜) 下面是完整源码
#include <iostream>
using namespace std;
class point
{
private:
int x;
int y;
public:
void setx(int mx)
{
x = mx;
}
int getx()
{
return x;
}
void sety(int my)
{
y = my;
}
int gety()
{
return y;
}
};
class yuan
{
private:
int r;
point center;
public:
void setr(int mr)
{
r = mr;
}
int getr()
{
return r;
}
void setcenter(point mcenter)
{
center = mcenter;
}
point getrenter()
{
return center;
}
};
void panduan(yuan &c,point &p)
{
double d1 = (c.getrenter().getx() - p.getx()) * (c.getrenter().getx() - p.getx()) +
(c.getrenter().gety() - p.gety()) * (c.getrenter().gety() - p.gety());
double d2 = c.getr() * c.getr();
if (d1 == d2)
{
cout << "点在圆上" << endl;
}
else if (d1 < d2)
{
cout << "点在圆内" << endl;
}
else
{
cout << "点在圆外" << endl;
}
}
int main()
{
yuan c;
c.setr(10);
point center;
center.setx(10);
center.sety(0);
c.setcenter(center);
point p;
p.setx(10);
p.sety(0);
panduan(c, p);
system("pause");
return 0;
}
下面就是拆分 分步重要解释我写在代码中了嗷 1.创建点类头文件(h)
#pragma once
#include <iostream>
using namespace std;
class point
{
private:
int x;
int y;
public:
void setx(int mx);
int getx();
void sety(int my);
int gety();
};
2.创建点类源文件(cpp)
#include "point.h"
void point::setx(int mx)
{
x = mx;
}
int point::getx()
{
return x;
}
void point::sety(int my)
{
y = my;
}
int point::gety()
{
return y;
}
圆类同理 注意中间加了point的头文件,因为中间用了点类
#pragma once
#include <iostream>
using namespace std;
#include "point.h"
class yuan
{
private:
int r;
point center;
public:
void setr(int mr);
int getr();
void setcenter(point mcenter);
point getrenter();
};
#include"yuan.h"
void yuan::setr(int mr)
{
r = mr;
}
int yuan::getr()
{
return r;
}
void yuan::setcenter(point mcenter)
{
center = mcenter;
}
point yuan::getrenter()
{
return center;
}
创建好后在主函数中的使用 加上俩头文件即可
#include <iostream>
using namespace std;
#include "point.h"
#include "yuan.h"
void panduan(yuan& c, point& p)
{
double d1 = (c.getrenter().getx() - p.getx()) * (c.getrenter().getx() - p.getx()) +
(c.getrenter().gety() - p.gety()) * (c.getrenter().gety() - p.gety());
double d2 = c.getr() * c.getr();
if (d1 == d2)
{
cout << "点在圆上" << endl;
}
else if (d1 < d2)
{
cout << "点在圆内" << endl;
}
else
{
cout << "点在圆外" << endl;
}
}
int main()
{
yuan c;
c.setr(10);
point center;
center.setx(10);
center.sety(0);
c.setcenter(center);
point p;
p.setx(10);
p.sety(0);
panduan(c, p);
system("pause");
return 0;
}
同理可得其他类的拆分
|