我必須爲作業創建一個類,我已經完成了所有我可以做的工作&我已經完成了研究並閱讀了我的教科書。我還需要做些什麼才能讓我的課程在我的主要課程中完成?你需要知道的一切都在代碼描述中。C++創建和使用類
/* LAB07.cpp
ALEXANDER YHAP
04/2012
In this lab you will create a new class called LabMetaData. Objects of this
class could be used in future lab assignments to store information about
the lab itself.
An object of class LabMetaData has the following attributes:
. Lab Number - A whole, positive number. Zero is valid.
. Lab Title - A title for the Lab Assignment
. Lab Author - The name of the programmer that wrote the lab.
. Lab Data - The date the lab was written, stored as three integer
numbers. The Day must be between 1 and 31. The month must be between 1
and 12. The year must be 4 digits and in the 21st Century (between 2000
and 2099).
. Lab Description - A description of the Lab Assignment.
An object of class LabMetaData has the following methods:
. Constructor - set the Lab Number to zero, the Lab date to 1/1/2010,
and all other attributes to empty strings. (Hint: call the SetData()
from the constructor function to avoid duplicating your code)
. SetData() - sets the attributes of the object to the parameters as long
as the parameters are valid. Rules:
o ALL of the parameters must be valid in order for ANY of the
attributes to change.
o Validation rules are explained above for Lab Number and Lab Date.
Title, Author, and Description have no validation.
o If no problems are detected, return TRUE. Otherwise return FALSE.
. ShowData() - displays all the object's attributes on the console.
The main() function and a sample executable is provided.
*/
#include <iostream>
using namespace std;
//Class Declaration Section
class LabMetaData
{
private:
int labNum;
string labTitle;
string labAuthor;
int Month;
int Day;
int Year;
string labDesc;
public:
// LabMetaData(int labNum, string labTitle, string labAuthor,int Month, int Day, int Year, string labDesc); //constructor
LabMetaData(int = 0, string = "Empty Title", string = "Empty Author",int = 01, int = 01, int = 2012, string = "Empty Description");
void LabMetaData::SetData(int, string, string, int, int, int, string);
void LabMetaData::ShowData();
};
//Class Implementation Section
LabMetaData::LabMetaData(int Num, string Title, string Author, int MM, int DD, int YYYY, string Desc)
{
labNum = Num;
labTitle = Title;
labAuthor = Author;
Month = MM;
Day = DD;
Year = YYYY;
labDesc = Desc;
}
void LabMetaData::SetData(int Num, string Title, string Author, int MM, int DD, int YYYY, string Desc)
{
// labNum = 7;
// labTitle = "N/A";
// labAuthor = "Unknown";
// Month = 01;
// Day = 01;
// Year = 2012;
// labDesc = "N/A";
// return;
labNum = Num;
labTitle = Title;
labAuthor = Author;
Month = MM;
Day = DD;
Year = YYYY;
labDesc = Desc;
return;
}
void LabMetaData::ShowData()
{
cout << "Lab " << labNum << ": " << labTitle << endl;
cout << "Created by: " << labAuthor << endl;
cout << "Date: " << Month << "/" << Day << "/" << Year << endl;
cout << "Description: " << labDesc << endl;
cout << endl;
return;
}
int main()
{
LabMetaData Lab7;
cout << endl << "Uninitialized: " << endl;
Lab7.ShowData();
Lab7.SetData(7,
"Introduction to Classes",
"Alexander Yhap",
10, 3, 2010,
"In this lab you will create a new class called LabMetaData. Objects of this class could be used in future lab assignments to store information about the lab itself.");
cout << endl << "Intialized: " << endl;
Lab7.ShowData();
if(!Lab7.SetData(-1, "Test", "Test", 13, 32, 11, "Causing Errors"))
cout << "\nErrors!" << endl;
cout << endl << "After Invalid Modification Attempt: " << endl;
Lab7.ShowData();
cout << endl << endl;
system("pause");
return 0;
}
錯誤消息是:
prog.cpp:32:27: error: no 'void LabMetaData::SetData()' member function declared in class 'LabMetaData'
prog.cpp:44:28: error: no 'void LabMetaData::ShowData()' member function declared in class 'LabMetaData'
prog.cpp: In function 'int main()':
prog.cpp:58:17: error: no matching function for call to 'LabMetaData::LabMetaData()'
prog.cpp:21:1: note: candidates are: LabMetaData::LabMetaData(int, std::string, std::string, int, int, int, std::string)
prog.cpp:5:1: note: LabMetaData::LabMetaData(const LabMetaData&)
prog.cpp:61:10: error: 'class LabMetaData' has no member named 'ShowData'
prog.cpp:63:10: error: 'class LabMetaData' has no member named 'SetData'
prog.cpp:66:10: error: 'class LabMetaData' has no member named 'ShowData'
prog.cpp:68:9: error: 'Lab4' was not declared in this scope
prog.cpp:72:10: error: 'class LabMetaData' has no member named 'ShowData'
你卡在哪裏?代碼是否編譯?如果不是,那麼編譯器錯誤是什麼? – 2012-04-04 17:31:25
你應該告訴_us_問題是什麼,而不是相反。什麼是完整的編譯器錯誤信息?如果您使用Visual Studio,那是在「輸出」窗口中,而不是「錯誤」窗口。 – 2012-04-04 17:31:43
我通過[gcc-4.5.1](http://ideone.com/OraVZ)運行了您的代碼,並將這些錯誤消息添加到了您的問題中。 – 2012-04-04 17:32:56