所以我仍然在處理這個問題,並認爲我有它正確。但是,現在它只顯示「ABC行業」和「報告」,而不是僅在沒有輸入信息時才這樣做。我在哪裏搞亂我的代碼?C++構造函數並獲取它以顯示默認答案
//This program displays a company's name and report.
#include <iostream>
#include <string>
#include <Windows.h>
using namespace std;
class Heading {
private:
string company;
string report;
public:
Heading() {
company = "ABC Industries";
report = "Report";
}
Heading(string c, string r) {
company = c;
report = r;
}
void storeInfo(string company, string report);
string getCompany() {
return company;
}
string getReport() {
return report;
}
};
void Heading::storeInfo(string c, string r) {
c = company;
r = report;
}
void storeInfo(Heading&);
void showInfo(HANDLE, Heading);
void placeCursor(HANDLE, Heading);
int main() {
Heading company;
HANDLE screen = GetStdHandle(STD_OUTPUT_HANDLE);
storeInfo(company);
showInfo(screen, company);
cin.ignore();
cin.get();
return 0;
}
/*****storeInfo*****/
void storeInfo(Heading &item) {
string company;
string report;
cout << "\nPlease enter the company name.\n";
getline(cin, company);
cout << "\nPlease enter the report name.\n";
\
getline(cin, report);
item.storeInfo(company, report);
}
/*****placeCursor*****/
void placeCursor(HANDLE screen, int row, int col) {
COORD position;
position.Y = row;
position.X = col;
SetConsoleCursorPosition(screen, position);
}
/*****showInfo*****/
void showInfo(HANDLE screen, Heading item) {
system("cls");
placeCursor(screen, 6, 25);
cout << "********************************" << endl;
placeCursor(screen, 8, 32);
cout << item.getCompany() << endl;
placeCursor(screen, 11, 36);
cout << item.getReport();
placeCursor(screen, 13, 25);
cout << "********************************" << endl;
}
構造函數_construct_。使用一種方法來顯示東西 – sehe
你在main上聲明瞭Heading類,可能會導致這種情況。如果你聲明一個Heading類型的變量而不指定你剛纔聲明的變量應該調用哪個構造函數,那麼編譯器會調用默認的構造函數,在這種情況下恰好是分配company =「ABC Industries」和report =「Report」。 – Juniar