vs2017编写调试程序中调用自己写的头文件的时候总是跳出该符号在函数 _main 中被引用

头文件是://namesp.h#include<string>//createthepersanddebtsnamespacesnamespacepers{structP... 头文件是:// namesp.h
#include <string>
// create the pers and debts namespaces
namespace pers
{
struct Person
{
std::string fname;
std::string lname;
};
void getPerson(Person &);
void showPerson(const Person &);
}

namespace debts
{
using namespace pers;
struct Debt
{
Person name;
double amount;
};

void getDebt(Debt &);
void showDebt(const Debt &);
double sumDebts(const Debt ar[], int n);
}
具体程序是:// namesp.cpp -- namespaces
#include <iostream>
#include "namesp.h"

namespace pers
{
using std::cout;
using std::cin;
void getPerson(Person & rp)
{
cout << "Enter first name: ";
cin >> rp.fname;
cout << "Enter last name: ";
cin >> rp.lname;
}

void showPerson(const Person & rp)
{
std::cout << rp.lname << ", " << rp.fname;
}
}

namespace debts
{
void getDebt(Debt & rd)
{
getPerson(rd.name);
std::cout << "Enter debt: ";
std::cin >> rd.amount;
}

void showDebt(const Debt & rd)
{
showPerson(rd.name);
std::cout <<": $" << rd.amount << std::endl;
}

double sumDebts(const Debt ar[], int n)
{
double total = 0;
for (int i = 0; i < n; i++)
total += ar[i].amount;
return total;
}
}
总报错:MSVCRTD.lib(exe_main.obj) : error LNK2019: 无法解析的外部符号 _main,该符号在函数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) 中被引用。是为什么?
展开
 我来答
云计算社区
2018-07-10 · TA获得超过447个赞
知道小有建树答主
回答量:351
采纳率:86%
帮助的人:119万
展开全部

你好像根本就没有写main() 方法,编译器连入口都没有找到,一定要写main() 方法;

稍简化了 一下,可以编译通过,能运行

#include "stdafx.h"
#include <conio.h>
#include <Windows.h>
#include <iostream>
#include <string>

namespace pers
{
struct Person
{
std::string fname;
std::string lname;
};
void getPerson(Person &);
void showPerson(const Person &);
}

namespace debts
{
using namespace pers;
struct Debt
{
Person name;
double amount;
};

void getDebt(Debt &);
void showDebt(const Debt &);
double sumDebts(const Debt ar[], int n);
}


namespace pers
{
using std::cout;
using std::cin;
void getPerson(Person & rp)
{
cout << "Enter first name: ";
cin >> rp.fname;
cout << "Enter last name: ";
cin >> rp.lname;
}

void showPerson(const Person & rp)
{
std::cout << rp.lname << ", " << rp.fname;
}
}

namespace debts
{
void getDebt(Debt & rd)
{
getPerson(rd.name);
std::cout << "Enter debt: ";
std::cin >> rd.amount;
}

void showDebt(const Debt & rd)
{
showPerson(rd.name);
std::cout << ": $" << rd.amount << std::endl;
}

double sumDebts(const Debt ar[], int n)
{
double total = 0;
for (int i = 0; i < n; i++)
total += ar[i].amount;
return total;
}
}


int main()
{

pers::Person person;

debts::Debt test;
//test.name = person;
//test.amount = 3.14;

debts::getDebt( test  );



    return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式