天天看點

如何将一個類分别寫在.h和.cpp檔案中

這裡通過兩個锂離子來進行描述。

題目:根據輸入的成績判斷成績的等級

首先通過grade.h檔案來定義類的基本架構,代碼如下:

#pragma once
#include <iostream>

//該位置寫類的聲明
class Grade {
public:
	//輸入成績
	void setScore();
	//計算成績的等級
	void getGrade(double score);
	double m_Score;		//屬性必須是公有的其他檔案中才能通路的到
};
           

然後在grade.cpp檔案中定義類中的成員函數實作,代碼如下:

#include"grade.h"

//輸入成績
void Grade::setScore() {
	int score;
	std::cout << "請輸入成績:" << std::endl;
	std::cin >> score;
	m_Score = score;
}

//計算成績等級
void Grade::getGrade(double score) {
	if (score < 0 || score>100) {
		std::cout << "輸入有誤。" << std::endl;
	}
	else if (score < 60) {
		std::cout << "不及格。" << std::endl;
	}
	else if (score < 75 && score >= 60) {
		std::cout << "良好" << std::endl;
	}
	else if (score < 85 && score >= 75) {
		std::cout << "良好" << std::endl;
	}
	else if (score <= 100 && score >= 85) {
		std::cout << "優秀" << std::endl;
	}
}
           

最後在main.cpp檔案中調用兩個檔案中寫好的類:

這裡注意,當在grade.h檔案中将成員屬性設定為私有時,main.cpp檔案中無法對該屬性進行通路,是以在grade.h檔案中需将成員屬性設定為公有。main.cpp中代碼如下:

// main.cpp : 此檔案包含 "main" 函數。程式執行将在此處開始并結束。
//

#include <iostream>
#include"grade.h"

void test() {
	//執行個體化成績對象
	Grade g;
	//輸入成績
	g.setScore();
	//判斷成績等級
	g.getGrade(g.m_Score);
}

int main()
{	
	test();
    std::cout << "Hello World!\n";
}
           

======================================================================

第二個例子是輸入三條邊長判斷能否構成一個三角形。這裡隻給出三個檔案的代碼:

istriangle.h檔案

#pragma once
#pragma once
#include<iostream>

/*
.h檔案中寫類以及類中成員的聲明
*/
class Istriangle {
public:
	//給abc三條邊指派的函數
	void setABC();

	//顯示是否能夠構成一個三角形
	void getResult(double a, double b, double c);

	//private:
	double a;
	double b;
	double c;
};
           

istriangle.cpp檔案

#include "istriangle.h"

//給三條邊指派
void Istriangle::setABC() {
	//定義輸入的三個變量
	double a;
	double b;
	double c;
	std::cout << "請輸入三條邊的值:" << std::endl;
	std::cin >> a >> b >> c;

	//将輸入的三個變量指派給三角形
	this->a = a;
	this->b = b;
	this->c = c;
}

//顯示是否能夠構成一個三角形
void Istriangle::getResult(double a, double b, double c) {
	if (a + b > c && a - b < c &&  a > 0 && b > 0 && c > 0) {
		std::cout << "可以構成三角形" << std::endl;
	}
	else {
		std::cout << "無法構成三角形" << std::endl;
	}
}
           

main.cpp檔案

#include <iostream>
#include"istriangle.h"

void test() {
	Istriangle t;
	t.setABC();
	t.getResult(t.a, t.b, t.c);
}

int main()
{
	test();
	system("pause");
	return 0;
}
           
c++

繼續閱讀