c++中函式分檔案編寫簡單小例子
阿新 • • 發佈:2021-01-27
函式分檔案編寫四步驟:
1.建立字尾名為.h的標頭檔案 2.建立字尾名為.cpp的原始檔
3.在標頭檔案中寫函式的宣告 4.在原始檔中寫函式的定義
判斷某點在某圓的位置
建立dot.h標頭檔案,只需對各變數和函式進行宣告即可
#pragma once//防止標頭檔案重複包含
class dot
{
private:
double x;
double y;
public:
void setx(double a);
double getx();
void sety(double b);
double gety();
};
建立dot.cpp原始檔,寫出函式具體實現方式即定義
#include"dot.h"
//以下函式都為dot類的成員函式,所以需要指明作用域即dot::函式名
void dot::setx(double a)
{
x = a;
}
double dot::getx()
{
return x;
}
void dot::sety(double b)
{
y = b;
}
double dot::gety()
{
return y;
}
同理寫出圓的circle.h標頭檔案和circle.cpp原始檔
#pragma once//防止標頭檔案重複包含
#include<iostream>
#include"dot.h"
using namespace std;
class circle
{
private:
dot d;
double r;
public:
void setd(dot dd);
dot getd();
void setr(double c);
double getr();
void f(double a, double b);
};
#include"circle.h"
void circle::setd(dot dd)
{
d = dd;
}
dot circle::getd()
{
return d;
}
void circle::setr(double c)
{
r = c;
}
double circle::getr()
{
return r;
}
void circle::f(double a, double b)
{
double l = (a - d.getx()) * (a - d.getx()) + (b - d.gety()) * (b - d.gety());
if (l == r * r)
cout << "點在圓上" << endl;
else if (l < r * r)
cout << "點在圓內" << endl;
else
cout << "點在圓外" << endl;
}
主函式進行呼叫即可
#include<iostream>
using namespace std;
#include"circle.h"
//#include"dot.h"//由於circle.h中包含了dot.h標頭檔案,此處可以不包含,但最好加上
int main()
{
dot d;//點
d.setx(3);
d.sety(0);
dot p;//圓心
p.setx(0);
p.sety(0);
circle c;//圓
c.setr(2);
c.setd(p);
c.f(d.getx(), d.gety());
return 0;
}
執行結果: