注册 登录
编程论坛 C++教室

关于将类定义和成员函数实现部分分离的小问题

小旭哥 发布于 2012-11-05 21:37, 936 次点击
小问题:关于将类定义和成员函数实现部分分离的小问题

我先建立一个工程:GradeBook
然后在这个工程里创建一个gradebook.h文件,代码如下:
#include<string>
using namespace std;

class GradeBook
{
public:
    GradeBook( string, string );
    void setCourseName( string );
    void setTeacherName( string );
    string getCourseName();
    string getTeacherName();
    void displayMessage();

private:
    string courseName;
    string teacherName;
};

然后我再在这个工程里创建一个gradebook.cpp文件,代码如下:
#include"gradebook.h"
#include<iostream>
using namespace std;

GradeBook::GradeBook( string teachName, string cName )
{
    setCourseName( cName );
    setTeacherName( teachName );
}

void GradeBook::setCourseName( string cName )
{
    courseName = cName;
}

void GradeBook::setTeacherName( string teachName )
{
    teacherName = teachName;
}

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

string GradeBook::getTeacherName()
{
    return teacherName;
}

void GradeBook::displayMessage()
{
    cout << "Welcome to course " << getCourseName() << "\n"
         << "This course is presented by " << getTeacherName() << endl;
}


然后当我输出(F7)的时候,错误提示如下:
--------------------Configuration: GradeBook - Win32 Debug--------------------
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/GradeBook.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.

GradeBook.exe - 1 error(s), 0 warning(s)


哪位内行人可以告诉我怎么弄啊?我试着用静态链接库,成功了。但是当我放在一个Windows Console Application工程的时候,没成功
求解决方案。。。。。


4 回复
#2
w5277050902012-11-06 00:31
我能力有限。。。只能帮顶。。。
#3
lintaoyn2012-11-06 06:47
没定义int main(){} ?
#4
hellovfp2012-11-06 10:37
既然都生成静态库了,那就方便了呀,
直接写一段程序,只引用头文件,链结的时候加上你生成的静态库就成了。
#5
allenz08102012-11-07 09:33
你那些 代码 看起来好像没有问题啊

不过建议在 gradebook.h文件
里面加 # ifndef gradebook_h    # define gradebook_h  # endif
那三个加了都是好的可以避免多次定义头文件
1