C++中類的宣告和類的實現分開
阿新 • • 發佈:2019-01-09
首先我們要實現確定一個點是否在園內的功能
所以我們需要兩個類一個Point類,一個Circle類
首先我們要先建立一個專案,名為Test2(這是我的專案名字)這裡不做過多的解釋,使用vs應該都會建立專案(我是建立的C++的專案,所以選擇Win32控制檯應用程式,建立的空專案)
然後右擊專案名稱—新增,點選建立類。
然後選擇類,雙擊會出現下面的介面
鍵入Point會顯示出一個.h檔案,一個.cpp檔案,點選完成,會出現一個原始檔,一個頭檔案。檔名為Point
在Point.h檔案中編入程式碼,是關於一些成員函式的宣告#Pragma once 是表示只讀一次#pragma once class Point { public: int GetX(); int GetY(); Point(int x, int y); Point(); private: int x; int y; };
然後再Point.cpp檔案中編入一下程式碼
#include "Point.h"
int Point::GetX()
{
return x;
}
int Point::GetY()
{
return y;
}
Point::Point(int x1, int y1)
{
x = x1;
y = y1;
}
Point::Point()
{
}
主要是Point.h中的函式的實現,要引入Point.h標頭檔案,所以要寫入#include“Point.h"
然後再以同樣的方法建立一個名為Circle的類
在Circle.h中編入以下程式碼
#pragma once
#include"Point.h"
class Circle
{
public:
double GetR(double r);
double GetS();
double GetC();
Point GetO();
bool IsInCircle(Point p);
Circle(Point o1, double r1);
Circle();
private:
double m_r;
double m_s;
double m_c;
Point o;
};
因為用到了Point 類,所以也要#include "Point.h"
在Circle.cpp中編入以下程式碼
#include "Circle.h"
#include"Point.h"
double Circle::GetR(double r)
{
m_r = r;
return m_r;
}
double Circle::GetS()
{
m_s = 3.14*m_r*m_r;
return m_s;
}
double Circle::GetC()
{
m_c = 2 * 3.14*m_r;
return m_c;
}
Point Circle::GetO()
{
return o;
}
bool Circle::IsInCircle(Point p)
{
if (((p.GetX() - o.GetX())*(p.GetX() - o.GetX()) + (p.GetY() - o.GetY())*(p.GetY() - o.GetY())) <= m_r*m_r)
{
return true;
}
else
{
return false;
};
}
Circle::Circle(Point o1, double r1)
{
o = o1;
m_r = r1;
}
Circle::Circle()
{
}
也主要是Circle.h 中的函式實現,IsInCiicle是實現點是否在圓內的函式
然後右擊原始檔,新增,新增新項,建立一個.cpp檔案,命名為main.cpp
此檔案中有main方法,是程式的入口
在檔案中編入以下程式碼
#include<iostream>
#include"Circle.h"
#include"Point.h"
using namespace std;
int main()
{
Point o = Point(0, 0);
Circle c1 = Circle(o, 5);
Point p1(3, 4);
bool b = c1.IsInCircle(p1);
cout << b << endl;
return 0;
}
確定好標頭檔案,建立物件,呼叫方法