簡體   English   中英

生成C ++文件:.h和.cpp

[英]Build C++ files: .h and .cpp

我們正在嘗試學習如何使用.h和.cpp文件構建c ++文件。 我們不斷收到相同的錯誤:error LNK2019: 函數_ _tmainCRTStartup中引用了無法解析的外部符號WinMain @ 16 ,我們不知道自己在做什么錯。 這是我們3個文件中的代碼:


// First cpp file

#include "stdafx.h"
#include <iostream>
#include "chayaGradeBook.h.h"
namespace std;

//constructor
GradeBook::GradeBook (string name)
{
setCourseName(name);
}
void GradeBook::setCourseName(string name)
{
if (name.size() <= 25)
    courseName=name;
if (name.size() > 25)
{
    courseName = name.substr (0, 25);

    cerr << "Name \"" <<name<< "\"exceeds maximum length (25).\n"<< "Limiting courseName to first 25 charachters.\n"<<endl;
}
}

string GradeBook::getCourseName() const
{
return courseName;
}

void GradeBook::displayMessage() const
}  
cout << "Welcome to the grade book for \n" << getCourseName() << "!" <<endl;
}

// chayaGradeBook.h.h

#include <string>


//Grade Book class definition
class GradeBook
{
public:
explicit GradeBook (std::string);
void setCourseName (std::string);
std::string getCourseName() const;
void displayMessage() const;
private:
std::string courseName;
};

main.cpp文件:

#include "stdafx.h"
#include <iostream>
#include "chayaGradeBook.h.h"
#include "chayaGradeBook.cpp"
using namespace std;


int main()
{
GradeBook gradeBook1 ("CS101 Introduction to Programming in C++");
GradeBook gradeBook2 ("CS102 Data Structures");

cout<< "gradeBook1's initial course name is: "
    << gradeBook1.getCourseName()
    <<"\ngradeBook2's inital course name is: "
    << gradeBook2.getCourseName()<< endl;

gradeBook1.setCourseName("CS101 C++ Programming");

cout <<"\ngradeBook1's course name is: "
    <<gradeBook1.getCourseName()
    << "\ngradeBook2's course name is: "
    << gradeBook2.getCOurseName() <<endl;
}

鏈接器找不到您的WinMain(),這是Windows應用程序的嘗試點。 創建新的控制台項目並將您的文件復制到其中,這應該會有所幫助。

這是Windows OS的獨特之處。 微軟認為WinMain更適合“本機Windows”應用程序(比main更好:-)
按照邏輯,“本機Windows”應用程序與Windows緊密相關,基於本機Windows API,並且不可移植。 就C ++而言,可能是“獨立環境”的情況。
您需要在IDE中“控制台應用程序項目” ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM