C++ クラスの作り方
Windows10の上で、Visual Studio Community2015 を使ってC++を勉強中の者です。
Time クラスというのを定義して使おうとしましたが、クライアント側のプログラム作成中にエラーメッセージが出てきて、色々考えましたがどこが悪いのかわかりません。
プログラム自体は時刻を設定してそれを表示させるだけのものです。
詳しい方がいらっしゃいましたら、ご教授お願い致します。
問題のエラーメッセージ;
"consoleApplication69.cpp" を作成中にエディターの中で、波型の赤線が出ているところにカーソルを持っていくと、次の3か所でそれぞれ次のようなエラーメッセージが出てきます。
(1) #include "time3.h" のところ: 「ソースファイルをひらけません。"time3.h"」
(2) 関数 incrementMinute( )のプロトタイプのところ:「不完全な型は使用できません。」
(3) 最初のパラメーター Time & のところ:「識別子 Time が定義されていません。」
以下に、
1: 私が作ったTimeクラスの定義のあるヘッダー "time3.h",
2: メンバー関数の定義ファイル "time3.cpp"
3:クライアント側プログラム "consoleApplication69.cpp"
の3つのソースコードをコピーします。
"time3.cpp" については長いので、上の半分だけにしました。
******************************************************
1: "time3.h"
********************************************************
#pragma once
// header file for Time class
// time3.h
#ifndef TIME3_H
#define TIME3_H
class Time {
public:
Time(int = 0, int = 0, int = 0);
~Time();
void setTime(int, int, int);
void setHour(int);
void setMinute(int);
void setSecond(int);
int getHour();
int getMinute();
int getSecond();
void printUniversal();
void printStandard();
private:
int hour;
int minute;
int second;
};
#endif
***********************************************
2: "time3.cpp"
************************************************
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
#include <cmath>
#include <cstring>
#include "time3.h"
using namespace System;
using namespace std;
Time::Time(int hr, int min, int sec) {
setTime(hr, min, sec);
}
void Time::setTime(int hr, int min, int sec) {
setHour(hr);
setMinute(min);
setSecond(sec);
}
void Time::setHour(int hr) {
hour = (0 <= hr && hr <= 23) ? hr : 0;
}
void Time::setMinute(int min) {
minute = (0 <= min && min <= 59) ? min : 0;
}
void Time::setSecond(int sec) {
second = (0 <= sec && sec <= 59) ? sec : 0;
}
*********************************************************
3: "consoleApplication69.cpp"
*********************************************************
// ConsoleApplication69.cpp : メイン プロジェクト ファイルです。
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include "time3.h"
using namespace System;
using namespace std;
//prototype
void incrementMinute(Time &, const int);
int main() {
Time t;
t.setHour(2);
t.setMinute(10);
t.setSecond(30);
cout << " current time is ";
cout << setfill('0');
cout << setw(2) << t.getHour() << ":";
cout << setw(2) << t.getMinute() << ":";
cout << setw(2) << t.getSecond() << "\n";
return 0;
}
// function
void incrementMinute(Time &tt, const int num) {
// まだ未定義
}
またソリューションエクスプローラーの画面写真も添付します。
ヘッダーファイルもインクルードしていますし、ソリューションの中に入れたつもりですが、なぜ Time が定義されていないといわれるのでしょうか?
どうぞよろしくお願いいたします。