在尝试实现我的程序时,我收到了一个链接器错误,未定义对Person :: Person的引用。这三部分如下。我一直在努力修复它几个小时。我知道这可能是我看不到的简单事情。但我在互联网上环顾四周仍然没有找到答案。所以任何帮助将不胜感激。
#ifndef PERSON0_H_
#define PERSON0_H_
#include <string>
class Person // class declaration
{
private:
static const int LIMIT = 25;
std::string lname;
char fname[LIMIT];
public:
Person() {lname = ""; fname[0] = '\0';}
Person(const std::string & ln, const char * fn = "Hay you");
void Show() const;
void FormalShow() const;
};
#endif
#include <iostream>
#include <string>
#include "person0.h"
void Person::Show() const
{
using namespace std;
std::cout << fname << " " << lname << '\n';
}
void Person::FormalShow() const
{
using std::cout;
std::cout << lname << ", " << fname << '\n';
}
#include <iostream>
#include <string>
#include "person0.h"
int main()
{
using namespace std;
Person one;
Person two("Smythecraft");
Person three("Dimwiddy", "Sam");
one.Show();
cout << endl;
one.FormalShow();
cout << endl;
two.Show();
cout << endl;
two.FormalShow();
cout << endl;
three.Show();
cout << endl;
three.FormalShow();
cin.get();
cin.get();
return 0;
}
答案 0 :(得分:4)
我不是真正的C ++人,所以术语可能有误,但我会说实现
Person::Person(const std::string & ln, const char * fn)
构造函数缺失。