2014-01-12 96 views
5

我正在通過「加速C++」。我有一個關於問題5-3的問題。它要求:什麼是驅動程序功能?

5-3. By using a typedef, we can write one version of the program that implements either a 
vector-based solution or a list-based one. Write and test this version of the program.' 

下一個問題問:

5-4. Look again at the driver functions you wrote in the previous exercise. Note that 
it is possible to write a driver that differs only in the declaration of the type for the data structure 
that holds the input file. If your vector and list test drivers differ in any other way, rewrite them 
so that they differ only in this declaration. 

到底是什麼驅動程序的功能?我已經通過創建if語句以及重載函數來處理不同的數據類型,像這樣解決5-3:

cout << "Please enter 1 if you would like to use vectors, or 2 if you would like to use lists: "<< endl; 
int choose; 
cin >> choose; 
//CHOOSING TO USE VECTORS 
if (choose == 1){....vector<Student_info> allStudents; 
       vector<Student_info> fail;.......} 

//CHOOSING TO USE LISTS 
else if (choose==2) {....list<Student_info> allStudents; 
        list<Student_info> fail;....} 

//INVALID CHOICE 
else {...invalid number, try again...} 

我沒有創造除了那些超載任何額外的功能來處理不同的數據類型。這些驅動程序功能?如果不是的話,我一定在做錯了。有人可以點亮一些光線嗎? :>

+1

你可能想讀這2005線程。 http://bytes.com/topic/c/answers/167496-accelerated-c-clarification-wording-exercises – KeithSmith

+2

驅動程序的功能很可能被寫入演示一些圖書館式的代碼,解決問題的操作功能。例如,如果你編寫了一些類'A',驅動程序函數就是代碼中的函數,只是爲了顯示類「A」的行爲如預期。所以,第一個驅動函數本身就是'main',然後是'main'中調用的任何其他函數,它們都是'A'類的客戶端。 – LavaScornedOven

+0

對於一本強烈推薦的書,寫作往往是非常殘酷的。互聯網上有多個線程試圖解析他們實際上在問什麼問題。我一直試圖從字面上重新編寫問題,以便在沒有互聯網搜索的情況下理解它們。 (是的,這將是諷刺)這是否顯示C++教學法的狀態是多麼令人遺憾,如果儘管它存在不可否認的缺陷,它仍然位列榜首。 – neuronet

回答

3

裏面你的兩個if塊,多麼相似的是,在allStudentsfail操作代碼,無論他們是否是listvector?如果你已經正確完成了任務,那麼可能幾乎沒有區別。現在,如果你把這些代碼出來,並轉移到listvector引用和mytype,你要麼建立與typedef vector<Student_info> mytype或代替操作typedef list<Student_info> mytype你將有什麼他們調用「驅動程序功能」。這不是你要找到互聯網參考的正式名稱。他們只是描述驅動器listvector操作以獲得答案的代碼。

+0

除了typedef之外,這兩個代碼塊是相同的!如果我做了這樣的事情: 'if(choose == 1){ typedef vector mytype;如果(選擇== 2){ } typedef list } 其他{ 的cout << 「無效號碼」 << ENDL; main(); return 0; } .... MYTYPE ..... ' 將if語句視爲驅動程序的功能? – zzz2991

+2

@DavidJhoo我認爲這個問題的具體目標是讓你把它分成一個*函數*(這可能需要單獨編譯'typedef'來獲得不同的類型),因爲我打賭他們接下來要做的事情是介紹*模板*並告訴你如何現在可以有一個「多種類型的驅動程序功能」(使用問題的尷尬語言) –

+0

好的。這就說得通了。我一直在想辦法通過函數和引用來定義'mytype'的'typedef'。但我不確定如何做到這一點。我將如何返回一個typedef,或者引用一個可以指定typedef的對象?或者這是一個不正確的做法? – zzz2991

1

在這種特殊情況下,驅動程序代碼是一種比較模糊的方式,說測試代碼

換句話說,筆者建議你看看你用來驗證你在5-3寫的代碼測試(又名驅動程序)代碼。

相關問題